|
@@ -66,6 +66,8 @@ class IncomingThread {
|
|
|
deleteBuddy(message: message)
|
|
|
} else if message.getCode() == CoreMessage_TMessageCode.INIT_BATCH_GROUP {
|
|
|
onInitGroupInfoBatch(message: message)
|
|
|
+ } else if message.getCode() == CoreMessage_TMessageCode.INIT_BATCH_GROUP_NO_MEMBERS {
|
|
|
+ onInitGroupInfoBatchNoMember(message: message)
|
|
|
} else if message.getCode() == CoreMessage_TMessageCode.INIT_BATCH_TOPIC {
|
|
|
onInitForumInfoBatch(message: message)
|
|
|
} else if message.getCode() == CoreMessage_TMessageCode.UPLOAD_FILE {
|
|
@@ -167,6 +169,8 @@ class IncomingThread {
|
|
|
saveWorkingArea(message: message)
|
|
|
} else if message.getCode() == CoreMessage_TMessageCode.ASKING_FOR_END_CALL {
|
|
|
askingForEndCall(message: message)
|
|
|
+ } else if message.getCode() == CoreMessage_TMessageCode.GET_BATCH_GROUP_NO_MEMBERS {
|
|
|
+ pushGroupNoMembers(message: message)
|
|
|
} else {
|
|
|
print("unprocessed code", message.getCode())
|
|
|
ack(message: message)
|
|
@@ -976,6 +980,79 @@ class IncomingThread {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private func pushGroupNoMembers(message: TMessage) -> Void {
|
|
|
+ let data = message.getBody(key: CoreMessage_TMessageKey.DATA)
|
|
|
+ if !data.isEmpty {
|
|
|
+ if let jsonArray = try! JSONSerialization.jsonObject(with: data.data(using: String.Encoding.utf8)!, options: JSONSerialization.ReadingOptions()) as? [AnyObject] {
|
|
|
+ Database.shared.database?.inTransaction({ (fmdb, rollback) in
|
|
|
+ do {
|
|
|
+ for json in jsonArray {
|
|
|
+ let group_id = CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.GROUP_ID)
|
|
|
+ _ = try Database.shared.insertRecord(fmdb: fmdb, table: "GROUP_NM", cvalues: [
|
|
|
+ "group_id" : group_id,
|
|
|
+ "f_name" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.GROUP_NAME),
|
|
|
+ "scope_id" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.MESSAGE_SCOPE_ID),
|
|
|
+ "image_id": CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.THUMB_ID),
|
|
|
+ "quote": CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.QUOTE),
|
|
|
+ "last_update" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.LAST_UPDATE),
|
|
|
+ "created_by" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.CREATED_BY),
|
|
|
+ "created_date" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.CREATED_DATE),
|
|
|
+ "ex_block" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.BLOCK),
|
|
|
+ "folder_id" : "",
|
|
|
+ "chat_modifier" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.CHAT_MODIFIER),
|
|
|
+ "group_type" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.IS_ORGANIZATION),
|
|
|
+ "parent" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.PARENT_ID),
|
|
|
+ "level" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.LEVEL),
|
|
|
+ "is_open" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.IS_OPEN),
|
|
|
+ "official" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.OFFICIAL_ACCOUNT),
|
|
|
+ "level_edu" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.LEVEL_EDU),
|
|
|
+ "materi_edu" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.MATERI_EDU),
|
|
|
+ "is_education" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.IS_EDUCATION)
|
|
|
+ ], replace: true)
|
|
|
+ }
|
|
|
+ ack(message: message)
|
|
|
+ } catch {
|
|
|
+ rollback.pointee = true
|
|
|
+ print(error)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ let group_id = message.getBody(key: CoreMessage_TMessageKey.GROUP_ID)
|
|
|
+ Database.shared.database?.inTransaction({ (fmdb, rollback) in
|
|
|
+ do {
|
|
|
+ let result = try Database.shared.insertRecord(fmdb: fmdb, table: "GROUP_NM", cvalues: [
|
|
|
+ "group_id" : group_id,
|
|
|
+ "f_name" : message.getBody(key: CoreMessage_TMessageKey.GROUP_NAME),
|
|
|
+ "scope_id" : message.getBody(key: CoreMessage_TMessageKey.MESSAGE_SCOPE_ID),
|
|
|
+ "image_id": message.getBody(key: CoreMessage_TMessageKey.THUMB_ID),
|
|
|
+ "quote": message.getBody(key: CoreMessage_TMessageKey.QUOTE),
|
|
|
+ "last_update" : message.getBody(key: CoreMessage_TMessageKey.LAST_UPDATE),
|
|
|
+ "created_by" : message.getBody(key: CoreMessage_TMessageKey.CREATED_BY),
|
|
|
+ "created_date" : message.getBody(key: CoreMessage_TMessageKey.CREATED_DATE),
|
|
|
+ "ex_block" : message.getBody(key: CoreMessage_TMessageKey.BLOCK),
|
|
|
+ "folder_id" : "",
|
|
|
+ "chat_modifier" : message.getBody(key: CoreMessage_TMessageKey.CHAT_MODIFIER),
|
|
|
+ "group_type" : message.getBody(key: CoreMessage_TMessageKey.IS_ORGANIZATION),
|
|
|
+ "parent" : message.getBody(key: CoreMessage_TMessageKey.PARENT_ID),
|
|
|
+ "level" : message.getBody(key: CoreMessage_TMessageKey.LEVEL),
|
|
|
+ "is_open" : message.getBody(key: CoreMessage_TMessageKey.IS_OPEN),
|
|
|
+ "official" : message.getBody(key: CoreMessage_TMessageKey.OFFICIAL_ACCOUNT),
|
|
|
+ "level_edu" : message.getBody(key: CoreMessage_TMessageKey.LEVEL_EDU),
|
|
|
+ "materi_edu" : message.getBody(key: CoreMessage_TMessageKey.MATERI_EDU),
|
|
|
+ "is_education" : message.getBody(key: CoreMessage_TMessageKey.IS_EDUCATION)
|
|
|
+ ], replace: true)
|
|
|
+ if result > 0 {
|
|
|
+ ack(message: message)
|
|
|
+ }
|
|
|
+ } catch {
|
|
|
+ rollback.pointee = true
|
|
|
+ print(error)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private func receiveMessage(message: TMessage) -> Void {
|
|
|
let message_id = message.getBody(key: CoreMessage_TMessageKey.MESSAGE_ID)
|
|
|
guard let _ = UserDefaults.standard.string(forKey: "status") else {
|
|
@@ -1361,6 +1438,43 @@ class IncomingThread {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private func onInitGroupInfoBatchNoMember(message: TMessage) -> Void {
|
|
|
+ let dataGroup = message.getBody(key: CoreMessage_TMessageKey.DATA)
|
|
|
+ if let jsonArray = try! JSONSerialization.jsonObject(with: dataGroup.data(using: String.Encoding.utf8)!, options: JSONSerialization.ReadingOptions()) as? [AnyObject] {
|
|
|
+ Database.shared.database?.inTransaction({ (fmdb, rollback) in
|
|
|
+ do {
|
|
|
+ for json in jsonArray {
|
|
|
+ _ = try Database.shared.insertRecord(fmdb: fmdb, table: "GROUP_NM", cvalues: [
|
|
|
+ "group_id" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.GROUP_ID),
|
|
|
+ "f_name" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.GROUP_NAME),
|
|
|
+ "scope_id" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.MESSAGE_SCOPE_ID),
|
|
|
+ "image_id": CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.THUMB_ID),
|
|
|
+ "quote": CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.QUOTE),
|
|
|
+ "last_update" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.LAST_UPDATE),
|
|
|
+ "created_by" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.CREATED_BY),
|
|
|
+ "created_date" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.CREATED_DATE),
|
|
|
+ "ex_block" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.BLOCK),
|
|
|
+ "folder_id" : "",
|
|
|
+ "chat_modifier" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.CHAT_MODIFIER),
|
|
|
+ "group_type" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.IS_ORGANIZATION),
|
|
|
+ "parent" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.PARENT_ID),
|
|
|
+ "level" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.LEVEL),
|
|
|
+ "is_open" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.IS_OPEN),
|
|
|
+ "official" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.OFFICIAL_ACCOUNT),
|
|
|
+ "level_edu" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.LEVEL_EDU),
|
|
|
+ "materi_edu" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.MATERI_EDU),
|
|
|
+ "is_education" : CoreMessage_TMessageUtil.getString(json: json, key: CoreMessage_TMessageKey.IS_EDUCATION)
|
|
|
+ ], replace: true)
|
|
|
+ }
|
|
|
+ ack(message: message)
|
|
|
+ } catch {
|
|
|
+ rollback.pointee = true
|
|
|
+ print(error)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private func onInitForumInfoBatch(message: TMessage, with isDelegate: Bool = false) -> Void {
|
|
|
let dataForum = message.getBody(key: CoreMessage_TMessageKey.DATA)
|
|
|
if let jsonArray = try! JSONSerialization.jsonObject(with: dataForum.data(using: String.Encoding.utf8)!, options: JSONSerialization.ReadingOptions()) as? [AnyObject] {
|