52 lines
1.2 KiB
Swift
52 lines
1.2 KiB
Swift
|
//
|
||
|
// SendMessage.swift
|
||
|
// NotificationService
|
||
|
//
|
||
|
// Created by Djorkaeff Alexandre Vilela Pereira on 9/18/20.
|
||
|
// Copyright © 2020 Facebook. All rights reserved.
|
||
|
//
|
||
|
|
||
|
import Foundation
|
||
|
|
||
|
struct MessageBody: Codable {
|
||
|
let message: Message
|
||
|
|
||
|
struct Message: Codable {
|
||
|
let _id: String
|
||
|
let msg: String
|
||
|
let rid: String
|
||
|
let tmid: String?
|
||
|
let t: MessageType?
|
||
|
}
|
||
|
}
|
||
|
|
||
|
struct MessageResponse: Response {
|
||
|
var success: Bool
|
||
|
}
|
||
|
|
||
|
final class SendMessageRequest: Request {
|
||
|
typealias ResponseType = MessageResponse
|
||
|
|
||
|
|
||
|
let method: HTTPMethod = .post
|
||
|
let path = "/api/v1/chat.sendMessage"
|
||
|
|
||
|
let id: String
|
||
|
let roomId: String
|
||
|
let text: String
|
||
|
let messageType: MessageType?
|
||
|
let threadIdentifier: String?
|
||
|
|
||
|
init(id: String, roomId: String, text: String, threadIdentifier: String? = nil, messageType: MessageType? = nil) {
|
||
|
self.id = id
|
||
|
self.roomId = roomId
|
||
|
self.text = text
|
||
|
self.messageType = messageType
|
||
|
self.threadIdentifier = threadIdentifier
|
||
|
}
|
||
|
|
||
|
func body() -> Data? {
|
||
|
return try? JSONEncoder().encode(MessageBody(message: MessageBody.Message(_id: id, msg: text, rid: roomId, tmid: threadIdentifier, t: messageType)))
|
||
|
}
|
||
|
}
|