Advertisement
Guest User

Untitled

a guest
Sep 14th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 2.09 KB | None | 0 0
  1. //
  2. //  Marvel.swift
  3. //  ntierMVC
  4. //
  5. //  Created by Marin Nikolić on 14/09/2018.
  6. //  Copyright © 2018 Marin Nikolić. All rights reserved.
  7. //
  8.  
  9. import Foundation
  10. import Moya
  11.  
  12. public enum Marvel {
  13.     case showUser(id: Int)
  14.     case login(user: UserLoginRequest)
  15.     case register(user: UserRegistrationRequest)
  16. }
  17.  
  18. extension Marvel :TargetType {
  19.     public var baseURL: URL {
  20.         return URL(string: "https://gateway.marvel.com/v1/public")!
  21.     }
  22.    
  23.     public var path: String {
  24.         switch self {
  25.         case .showUser(let id): return "/user/\(id)"
  26.         case .login(_): return "/login"
  27.         case .register(_): return "/register"
  28.         }
  29.     }
  30.    
  31.     public var method: Moya.Method {
  32.         switch self {
  33.         case .showUser(_): return .post
  34.         case .login(_): return .post
  35.         case .register(_): return .post
  36.         }
  37.     }
  38.    
  39.     public var sampleData: Data {
  40.         return Data()
  41.     }
  42.    
  43.     public var task: Task {
  44.         switch self {
  45.         case .showUser(let id):
  46.             return .requestParameters(
  47.                 parameters: [
  48.                     "id": id
  49.                 ],encoding: JSONEncoding.default)
  50.         case .login(let user):
  51.             return .requestParameters(
  52.                 parameters: [
  53.                     "username" : user.username.value ?? "",
  54.                     "password" : user.password.value ?? ""
  55.                 ], encoding: JSONEncoding.default)
  56.         case .register(let user):
  57.             return .requestParameters(
  58.                 parameters: [
  59.                     "username" : user.username.value ?? "",
  60.                     "password" : user.password.value ?? "",
  61.                     "repeatedPassword" : user.repeatedPassword.value ?? "",
  62.                     "email" : user.email.value ?? ""
  63.                 ], encoding: JSONEncoding.default)
  64.         }
  65.  
  66.     }
  67.  
  68.    
  69.     public var headers: [String : String]? {
  70.         return ["Content-Type": "application/json"]
  71.     }
  72.    
  73.     // 7
  74.     public var validationType: ValidationType {
  75.         return .successCodes
  76.     }
  77.    
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement