Untitled
unknown
plain_text
2 years ago
2.8 kB
24
Indexable
import Foundation import UIKit extension ParentChatController { var appDelegate : AppDelegate { return UIApplication.shared.delegate as! AppDelegate } } class ParentChatController : MessagesViewController { @objc var messageId: String? @objc var messageTitle: String? var pageNumber = 0; var userMessageId = "" override func viewDidLoad() { userMessageId = messageId ?? "" let str_url = "API GOES HERE" sendRequest(str_url, parameters: ["message_id": MESSAGE_ID, "page_number": String(PAGE_NUMBER)]) { responseObject, error in guard let responseObject = responseObject, error == nil else { print(error ?? "Unknown error") return } print(responseObject.messages.count) } } func sendRequest(_ url: String, parameters: [String: String], completion: @escaping (ChatResponse?, Error?) -> Void) { var components = URLComponents(string: url)! components.queryItems = parameters.map { (key, value) in URLQueryItem(name: key, value: value) } var request = URLRequest(url: components.url!) request.setValue("application/json", forHTTPHeaderField: "Content-Type") let authValue = "Bearer \(String(describing: appDelegate.token!))" request.setValue(AUTH_VALUE, forHTTPHeaderField: "Authorization") print(request) let task = URLSession.shared.dataTask(with: request) { data, response, error in guard let data = data, let response = response as? HTTPURLResponse, 200 ..< 300 ~= response.statusCode, error == nil else { completion(nil, error) return } //let responseObject = (try? JSONSerialization.jsonObject(with: data)) as? [ChatResponse] let chatResponse = try? JSONDecoder().decode(ChatResponse.self, from: data) completion(chatResponse, nil) } task.resume() } } struct ChatResponse: Codable { let status: String let messages: [Message] let totalRows: Int enum CodingKeys: String, CodingKey { case status, messages case totalRows = "total_rows" } } // MARK: - Message struct Message: Codable { let chatTime: String let createdAt: Int let senderName: String let receiverName: String let senderType: Int let message: String let id: Int enum CodingKeys: String, CodingKey { case chatTime = "chat_time" case createdAt = "created_at" case senderName = "sender_name" case receiverName = "receiver_name" case senderType = "sender_type" case message, id } }
Editor is loading...
Leave a Comment