Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- final class Message: Decodable {
- var id:Int?
- var message: String
- init(message:String){
- self.message = message
- }
- }
- import Foundation
- enum APIError:Error{
- case responseProblem
- case decodingProblem
- case otherProblem
- }
- struct APIRequest {
- let resourceURL: URL
- init(endpoint: String){
- let resourceString="fdgdfg"
- guard let resourceURL = URL(string: resourceString) else {fatalError()}
- self.resourceURL = resourceURL
- }
- func save (_ messageToSave:Message, completion @escaping(Result<Message, APIError>) -> Void){
- do {
- var urlRequest = UrlRequest(url: resourceURL)
- urlRequest.httpMethod = "POST"
- urlRequest.addValue("application/json",forHTTPHeaderFiled: "Content-Type")
- urlRequest.httpBody = try JSONEncoder().ecode(messageToSave)
- let dataTask = URLSession.shared.dataTask(with: urlRequest) { data, response, _ in
- guard let httpResponse = response as? HTTPURLResponse, httpResponse.statusCode == 200, let jsonData = data else {
- completion(failure(.responseProblem))
- return
- }
- do {
- let messageData = try HSONDecoder().decode(Message.self, from: jsonData)
- completion(.success(messageData))
- }catch{
- completion(.failure(.decodingProblem))
- }
- }
- dataTask.resume()
- }catch{
- completion(.failure(.encodingProblem))
- }
- }
- let message = Message(message: text)
- let postRequest = APIRequest(endpoint: "messages")
- postRequest.save(message,completion:{result in
- switch result {
- case .success(let message):
- printaaaa
- case .failure
- print bbbbb
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement