//
// Copyright © 2020 dahua. All rights reserved.
//
#import "LCAddDeviceInterface.h"
#import "LCNetworkRequestManager.h"
#import "TextDefine.h"
@implementation LCAddDeviceInterface
+ (void)getDeviceIntroductionForDeviceModel:(NSString *)deviceModel success:(void (^)(DHOMSIntroductionInfo *introductions))success
failure:(void (^)(LCError *error))failure {
[[LCNetworkRequestManager manager] lc_POST:@"/deviceAddingProcessGuideInfoGet" parameters:@{ KEY_TOKEN: [LCApplicationDataManager token], KEY_DEVICE_MODEL_NAME: deviceModel } success:^(id _Nonnull objc) {
DHOMSIntroductionInfo *introductions = [DHOMSIntroductionInfo mj_objectWithKeyValues:objc];
if (introductions.updateTime == nil) {
introductions.updateTime = @"";
}
if (success) {
success(introductions);
}
} failure:^(LCError *_Nonnull error) {
if (failure) {
failure(error);
}
}];
}
+ (void)checkDeviceIntroductionWithUpdateTime:(NSString *)updateTime success:(void (^)(BOOL isUpdated))success
failure:(void (^)(LCError *error))failure {
[[LCNetworkRequestManager manager] lc_POST:@"/deviceAddingProcessGuideInfoCheck" parameters:@{ KEY_TOKEN: [LCApplicationDataManager token], KEY_UPDATETIME: updateTime } success:^(id _Nonnull objc) {
BOOL update = [[objc objectForKey:@"isUpdated"] boolValue];
if (success) {
success(update);
}
} failure:^(LCError *_Nonnull error) {
if (failure) {
failure(error);
}
}];
}
+ (void)queryAllProductWithDeviceType:(NSString *)deviceModel Success:(void (^)(NSDictionary *productList))success
failure:(void (^)(LCError *error))failure {
if (deviceModel == nil || deviceModel.isNull) {
//默认写Camera
deviceModel = @"Camera";
}
[[LCNetworkRequestManager manager] lc_POST:@"/deviceModelList" parameters:@{ KEY_TOKEN: [LCApplicationDataManager token], KEY_DEVICE_TYPE: deviceModel } success:^(id _Nonnull objc) {
NSMutableArray <DHOMSDeviceType *> *omsModel = [DHOMSDeviceType mj_objectArrayWithKeyValuesArray:[objc objectForKey:@"configList"]];
NSArray <DHOMSDeviceType *> *modelArr = [NSArray arrayWithArray:omsModel];
NSString *updateTimeStr = @"";
if ([objc objectForKey:@"updateTime"] != nil) {
updateTimeStr = [objc objectForKey:@"updateTime"];
}
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:modelArr,@"deviceTypeConfigs",updateTimeStr,@"updateTime", nil];
if (success) {
success(dic);
}
} failure:^(LCError *_Nonnull error) {
if (failure) {
failure(error);
}
}];
}
+ (void)checkDeviceBindOrNotWithDevice:(NSString *)deviceId success:(void (^)(LCCheckDeviceBindOrNotInfo *))success failure:(void (^)(LCError *_Nonnull))failure
{
[[LCNetworkRequestManager manager] lc_POST:@"/checkDeviceBindOrNot" parameters:@{ KEY_TOKEN: [LCApplicationDataManager token], KEY_DEVICE_ID: deviceId } success:^(id _Nonnull objc) {
LCCheckDeviceBindOrNotInfo *info = [LCCheckDeviceBindOrNotInfo mj_objectWithKeyValues:objc];
if (success) {
success(info);
}
} failure:^(LCError *_Nonnull error) {
if (failure) {
failure(error);
}
}];
}
+ (void)unBindDeviceInfoForDevice:(NSString *)deviceId DeviceModel:(nullable NSString *)deviceModel DeviceName:(NSString *)deviceName ncCode:(NSString *)ncCode success:(void (^)(DHUserDeviceBindInfo * info))success failure:(void (^)(LCError *error))failure {
NSMutableDictionary * dic = [NSMutableDictionary dictionary];
[dic setObject:[LCApplicationDataManager token] forKey:KEY_TOKEN];
[dic setObject:deviceId forKey:KEY_DEVICE_ID];
if (deviceModel && ![@"" isEqualToString:deviceModel]) {
[dic setObject:deviceModel forKey:KEY_DT];
}
if (deviceName && ![@"" isEqualToString:deviceName]) {
[dic setObject:deviceName forKey:KEY_DEVICE_MODEL_NAME];
}
if (ncCode && ![@"" isEqualToString:ncCode]) {
[dic setObject:ncCode forKey:KEY_NC_CODE];
}
[[LCNetworkRequestManager manager] lc_POST:@"/unBindDeviceInfo" parameters:dic success:^(id _Nonnull objc) {
DHUserDeviceBindInfo *info = [DHUserDeviceBindInfo mj_objectWithKeyValues:objc];
if (info.brand == nil) {
info.brand = @"";
}
if (info.modelName == nil) {
info.modelName = @"";
}
if (info.deviceModel == nil) {
info.deviceModel = @"";
}
if (success) {
success(info);
}
} failure:^(LCError *_Nonnull error) {
if (failure) {
failure(error);
}
}];
}
+ (void)deviceOnlineFor:(NSString *)deviceId success:(void (^)(LCDeviceOnlineInfo *_Nonnull))success failure:(void (^)(LCError *_Nonnull))failure {
[[LCNetworkRequestManager manager] lc_POST:@"/deviceOnline" parameters:@{ KEY_TOKEN: [LCApplicationDataManager token], KEY_DEVICE_ID: deviceId } success:^(id _Nonnull objc) {
LCDeviceOnlineInfo *info = [LCDeviceOnlineInfo mj_objectWithKeyValues:objc];
if (success) {
success(info);
}
} failure:^(LCError *_Nonnull error) {
if (failure) {
failure(error);
}
}];
}
+ (void)bindDeviceWithDevice:(NSString *)deviceId Code:(NSString *)code success:(void (^)(void))success failure:(void (^)(LCError *_Nonnull))failure {
[[LCNetworkRequestManager manager] lc_POST:@"/bindDevice" parameters:@{ KEY_TOKEN: [LCApplicationDataManager token], KEY_DEVICE_ID: deviceId, KEY_CODE: code } success:^(id _Nonnull objc) {
if (success) {
success();
}
} failure:^(LCError *_Nonnull error) {
if (failure) {
failure(error);
}
}];
}
+ (void)timeZoneConfigByWeekWithDevice:(nonnull NSString *)deviceId AreaIndex:(NSInteger)areaIndex TimeZone:(NSInteger)timeZone BeginSunTime:(NSString *)beginSunTime EndSunTime:(NSString *)endSunTime success:(void (^)(void))success
failure:(void (^)(LCError *error))failure {
NSMutableDictionary *res = [NSMutableDictionary dictionaryWithDictionary:@{ KEY_TOKEN: [LCApplicationDataManager token], KEY_DEVICE_ID: deviceId, KEY_AREAINDEX: [NSString stringWithFormat:@"%ld", (long)areaIndex], KEY_TIMEZONE: [NSString stringWithFormat:@"%ld", (long)timeZone] }];
if (beginSunTime) {
beginSunTime = [beginSunTime stringByAppendingString:@":00"];
[res setObject:beginSunTime forKey:KEY_BEGIN_SUMMERTIME];
}
if (endSunTime) {
endSunTime = [endSunTime stringByAppendingString:@":00"];
[res setObject:endSunTime forKey:KEY_END_SUMMERTIME];
}
if (timeZone==0 && areaIndex == 0) {
if (success) {
success();
}
return;
}
[[LCNetworkRequestManager manager] lc_POST:@"/timeZoneConfigByWeek" parameters:res success:^(id _Nonnull objc) {
if (success) {
success();
}
} failure:^(LCError *_Nonnull error) {
if (failure) {
failure(error);
}
}];
}
+ (void)timeZoneConfigByDateWithDevice:(nonnull NSString *)deviceId AreaIndex:(NSInteger)areaIndex TimeZone:(NSInteger)timeZone BeginSunTime:(NSString *)beginSunTime EndSunTime:(NSString *)endSunTime success:(void (^)(void))success
failure:(void (^)(LCError *error))failure {
NSMutableDictionary *res = [NSMutableDictionary dictionaryWithDictionary:@{ KEY_TOKEN: [LCApplicationDataManager token], KEY_DEVICE_ID: deviceId, KEY_AREAINDEX: [NSString stringWithFormat:@"%ld", (long)areaIndex], KEY_TIMEZONE: [NSString stringWithFormat:@"%ld", (long)timeZone] }];
if (beginSunTime) {
beginSunTime = [beginSunTime stringByAppendingString:@":00"];
[res setObject:beginSunTime forKey:KEY_BEGIN_SUMMERTIME];
}
if (endSunTime) {
endSunTime = [endSunTime stringByAppendingString:@":00"];
[res setObject:endSunTime forKey:KEY_END_SUMMERTIME];
}
if (timeZone==0 && areaIndex == 0) {
if (success) {
success();
}
return;
}
[[LCNetworkRequestManager manager] lc_POST:@"/timeZoneConfigByDay" parameters:res success:^(id _Nonnull objc) {
if (success) {
success();
}
} failure:^(LCError *_Nonnull error) {
if (failure) {
failure(error);
}
}];
}
@end