Message Capabilities

Last Updated on : 2024-06-12 08:48:54download

Query message list

API description

- (void)fetchMessageListWithListRequestModel:(ThingSmartMessageListRequestModel *)listRequestModel
                                     success:(void (^)(NSArray<ThingSmartMessageListModel *> *messageList))success
                                     failure:(ThingFailureError)failure;

Parameters

Parameter Description
listRequestModel The model to request the list of messages.
success The success callback, returning an array of messages.
failure The failure callback, returning an error message.

Data model of ThingSmartMessageListRequestModel

Field Description
msgType The message type:
  • ThingMessageTypeAlarm: Alert
  • ThingMessageTypeFamily: Home message
  • ThingMessageTypeNotice: Notice
limit The maximum number of results that can be requested.
offset The total number of returned results.

Example

Objective-C:

ThingSmartMessageListRequestModel *requestModel = [[ThingSmartMessageListRequestModel alloc] init];
requestModel.msgType = ThingMessageTypeAlarm;
requestModel.offset = 0;
requestModel.limit = 15;

ThingSmartMessage *message = [[ThingSmartMessage alloc] init];
[message fetchMessageListWithListRequestModel:requestModel success:^(NSArray<ThingSmartMessageListModel *> * _Nonnull messageList) {

 } failure:^(NSError *error) {

 }];

Swift:

let requesModel = ThingSmartMessageListRequestModel()
requesModel.msgType = .alarm
requesModel.limit = 15
requesModel.offset = 0

let message = ThingSmartMessage()
message.fetchList(with: requesModel) { list in

} failure: { error in

}

Query message details

API description

- (void)fetchEncryptMessageDetailListWithListRequestModel:(ThingSmartMessageDetailListRequestModel *)detailListRequestModel
                                                  success:(void (^)(NSArray<ThingSmartMessageListModel *> *messageList))success
                                                  failure:(ThingFailureError)failure;

Parameters

Parameter Description
detailListRequestModel The model to request the message details.
success The success callback, returning an array of message details.
failure The failure callback, returning an error message.

Data model of ThingSmartMessageDetailListRequestModel

Field Description
msgType The message type. Only the alert type ThingMessageTypeAlarm is supported.
limit The maximum number of results that can be requested.
offset The total number of returned results.
msgSrcId The ID of the device that sends the alert.

Example

Objective-C:

ThingSmartMessageDetailListRequestModel *listRequestModel = [[ThingSmartMessageDetailListRequestModel alloc] init];
listRequestModel.msgType = ThingMessageTypeAlarm;
listRequestModel.limit = 15;
listRequestModel.offset = 0;
listRequestModel.msgSrcId = @"xxx";

ThingSmartMessage *message = [[ThingSmartMessage alloc] init];
[message fetchEncryptMessageDetailListWithListRequestModel:listRequestModel success:^(NSArray<ThingSmartMessageListModel *> * _Nonnull messageList) {

} failure:^(NSError *error) {

}];

Swift:

let requesModel = ThingSmartMessageDetailListRequestModel()
requesModel.msgType = .alarm
requesModel.limit = 15
requesModel.offset = 0
requesModel.msgSrcId = ""

let message = ThingSmartMessage()
message.fetchEncryptMessageDetailList(with: requesModel) { list in

} failure: { error in

}

Query message key

API description

- (void)fetchMessageDecryptKeyWithEncryptRequestModel:(NSArray<ThingSmartMessageEncryptRequestModel *> *)encryptRequestListModel
                                              success:(void (^)(NSArray<ThingSmartMessageDecryptModel *> *messageList))success
                                              failure:(ThingFailureError)failure;

Parameters

Parameter Description
encryptRequestListModel The model to request the message key.
success The success callback, returning an array of message keys.
failure The failure callback, returning an error message.

Data model of ThingSmartMessageEncryptRequestModel

Field Description
businessNo The message ID.
deviceId The ID of the device that sends the alert.
homeId The home ID.
time The message timestamp.

Data model of ThingSmartMessageDecryptModel

Field Description
businessNo The message ID.
businessKey The message key.

Example

Objective-C:

ThingSmartMessageEncryptRequestModel *requestModel = [[ThingSmartMessageEncryptRequestModel alloc] init];
requestModel.businessNo = message.msgId;
requestModel.deviceId = message.msgSrcId;
requestModel.time = message.time;
requestModel.homeId = message.homeID;

ThingSmartMessage *message = [[ThingSmartMessage alloc] init];
[messagefetchMessageDecryptKeyWithEncryptRequestModel:@[requestModel] success:^(NSArray<ThingSmartMessageDecryptModel *> * _Nonnull decryptList) {

} failure:^(NSError *error) {

}];

Swift:

let requesModel = ThingSmartMessageEncryptRequestModel()
requestModel.businessNo = message.msgId
requestModel.deviceId = message.msgSrcId
requestModel.time = message.time
requestModel.homeId = message.homeID

let message = ThingSmartMessage()
message.fetchDecryptKey(withEncryptRequestModel: [requesModel]) { list in

} failure: { error in

}

Bulk delete messages

API description

- (void)deleteMessageWithDeleteRequestModel:(ThingSmartMessageListDeleteRequestModel *)deleteRequestModel
                                    success:(ThingSuccessBOOL)success
                                    failure:(ThingFailureError)failure;

Parameters

Parameter Description
deleteRequestModel The model to delete messages.
success The success callback.
failure The failure callback, returning an error message.

Data model of ThingSmartMessageListDeleteRequestModel

Field Description
msgType The message type:
  • ThingMessageTypeAlarm: Alert
  • ThingMessageTypeFamily: Home message
  • ThingMessageTypeNotice: Notice
msgIds The list of messages to be deleted.
msgSrcId The list of alert messages to be deleted.
  • To delete messages from the alert list, set the parameter msgSrcIds.
  • To delete messages from the alert details list, set the parameter ids.
  • To delete messages from the home message or notice list, set the parameter msgIds.

Do not set both msgSrcIds and ids at the same time. Otherwise, the messages from the details list cannot be deleted.

Example

Objective-C:

ThingSmartMessageListDeleteRequestModel *requestModel = [[ThingSmartMessageListDeleteRequestModel alloc] init];
requestModel.msgType = ThingMessageTypeAlarm;
requestModel.msgSrcIds = @[@"xx", @"xx"];

ThingSmartMessage *message = [[ThingSmartMessage alloc] init];
[message deleteMessageWithDeleteRequestModel:requestModel success:^(BOOL result) {

} failure:^(NSError *error) {

}];

Swift:

let requesModel = ThingSmartMessageListDeleteRequestModel()
requesModel.msgType = .alarm
requesModel.msgSrcIds = ["xx", "xx"]

let message = ThingSmartMessage()
message.delete(with: requesModel) { result in

} failure: { error in

}

Check for new messages

API description

- (void)getLatestMessageWithSuccess:(ThingSuccessDict)success failure:(ThingFailureError)failure

Parameters

Parameter Description
success The success callback, returning a dictionary with the following keys:
  • alarm: Alert
  • family: Home message
  • notification: Notice
failure The failure callback, returning an error message.

The logic for checking for new messages varies by msgType in ThingSmartMessageListRequestModel.

  • When a new home message or notice arrives, getLatestMessageWithSuccess:failure: returns true. When you call getLatestMessageWithSuccess:failure: after querying the message list, the result will be set to false.

  • For alert messages, when you query the message list after readMessageWithReadRequestModel:success:failure:, hasNotRead in ThingSmartMessageListModel will be set to false.

Example

Objective-C:

//      self.smartMessage = [[ThingSmartMessage alloc] init];
    [self.smartMessage getLatestMessageWithSuccess:^(NSDictionary *result) {
        NSLog(@"get latesMessage success:%@", result);
    } failure:^(NSError *error) {
        NSLog(@"get message max time failure:%@", error);
    }];

Swift:

    smartMessage?.getLatestMessageWithSuccess({ (result) in
        print("get message max time success :\(result)")
    }, failure: { (error) in
        if let e = error {
            print("get message max time failure: \(e)")
        }
    })

Mark message as read

API description

- (void)readMessageWithReadRequestModel:(ThingSmartMessageListReadRequestModel *)readRequestModel
                                success:(ThingSuccessBOOL)success
                                failure:(ThingFailureError)failure;

Parameters

Parameter Description
readRequestModel The model to request the read messages.
success The success callback.
failure The failure callback, returning an error message.

Data model of ThingSmartMessageListReadRequestModel

Field Description
msgType The message type. Only the alert type ThingMessageTypeAlarm is supported.
msgIds The list of read messages.

Example

Objective-C:

ThingSmartMessageListReadRequestModel *requestModel = [[ThingSmartMessageListReadRequestModel alloc] init];
requestModel.msgType = ThingMessageTypeAlarm;
requestModel.msgIds = @[@"xx", @"xx"];

ThingSmartMessage *message = [[ThingSmartMessage alloc] init];
[message readMessageWithReadRequestModel:requestModel success:^(BOOL result) {

} failure:^(NSError *error) {

}];

Swift:

let requesModel = ThingSmartMessageListReadRequestModel()
requesModel.msgType = .alarm
requesModel.msgIds = ["xx", "xx"]

let message = ThingSmartMessage()
message.read(with: requesModel) { result in

} failure: { error in

}