Created
May 15, 2017 11:22
-
-
Save pffan91/c74983d7e8fa810a72895f6758230fe0 to your computer and use it in GitHub Desktop.
NetworkLayerWithMoya
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Created by Vladyslav Semenchenko on 15/05/2017. | |
// Copyright © 2017 Vladyslav Semenchenko. All rights reserved. | |
import Foundation | |
import Moya | |
// 1: | |
enum MyServerAPI { | |
// MARK: - Cameras | |
case cameras | |
case settingsFor(cameraId: String) | |
// MARK: - User | |
case createUser(email: String, password: String) | |
} | |
// 2: | |
extension MyServerAPI: TargetType { | |
// 3: | |
var baseURL: URL { return URL(string: "https://testing.myserver.com/api/v1")! } | |
// 4: | |
var path: String { | |
switch self { | |
case .cameras: | |
return "/cameras" | |
case .settingsFor(let cameraId): | |
return "/cameras/\(cameraId)/settings" | |
case .createUser: | |
return "/user" | |
} | |
} | |
// 5: | |
var method: Moya.Method { | |
switch self { | |
case .createUsr: | |
return .post | |
default: | |
return .get | |
} | |
} | |
// 6: | |
var parameters: [String: Any]? { | |
switch self { | |
case .createUser(let email, let password): | |
var parameters = [String: Any]() | |
parameters["email"] = email | |
parameters["password"] = password | |
return parameters | |
default: | |
return nil | |
} | |
} | |
// 7: | |
var parameterEncoding: ParameterEncoding { | |
return JSONEncoding.default | |
} | |
// 8: | |
var sampleData: Data { | |
return Data() | |
} | |
// 9: | |
var task: Task { | |
return .request | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment