Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import UIKit
- import Moya
- enum ChatDataProvider {
- case viewChat(id: String)
- case getMessages(chatId: String, count: String, messageId: String)
- case chatList()
- case currentTime()
- }
- extension ChatDataProvider: TargetType {
- var baseURL: URL {
- return URL(string: BaseURL)!
- }
- var path: String {
- switch self {
- case .viewChat:
- return "chats/view"
- case .getMessages:
- let url = "chats/messages"
- return url
- case .chatList:
- return "chats"
- case .currentTime:
- return "misc/time"
- }
- }
- var method: Moya.Method {
- switch self {
- case .getMessages, .chatList, .viewChat, .currentTime:
- return .get
- }
- }
- var sampleData: Data {
- switch self {
- default:
- return "{}".data(using: String.Encoding.utf8)!
- }
- }
- var task: Task {
- switch self {
- case .chatList, .currentTime:
- return .requestPlain
- case .viewChat(let id):
- return .requestCompositeData(
- bodyData: "".data(using: .utf8)!,
- urlParameters: ["id": id])
- case .getMessages(let id, let count, let messageId):
- return .requestCompositeData(
- bodyData: "".data(using: .utf8)!,
- urlParameters: ["id": id, "last": messageId, "count": count])
- }
- }
- var headers: [String : String]? {
- var params = [String : String]()
- let token = UserDefaultsManager().get(data: .token)
- params["Content-Type"] = "application/json"
- params["Authorization"] = "JWT \(token)"
- return params
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement