Skip to content

Commit 6f3fe2a

Browse files
Merge pull request #41 from Cidaas/development
Development
2 parents a61d51f + fb1c620 commit 6f3fe2a

File tree

14 files changed

+1004
-25
lines changed

14 files changed

+1004
-25
lines changed

Cidaas.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
Pod::Spec.new do |s|
1010
s.name = 'Cidaas'
11-
s.version = '1.0.9'
11+
s.version = '1.0.10'
1212
s.summary = 'Native SDK for iOS providing login, registration and verification functionalities'
1313
s.homepage = 'https://github.com/Cidaas/cidaas-sdk-ios-v2'
1414
s.license = { :type => 'MIT', :file => 'LICENSE' }

Cidaas/Classes/Core/Controllers/Repository/Settings/SettingsController.swift

Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,194 @@ public class SettingsController {
5858
}
5959
}
6060
}
61+
62+
// update fcm
63+
public func updateFCMToken(sub: String, fcmId: String, properties: Dictionary<String, String>, callback: @escaping(Result<UpdateFCMTokenResponseEntity>) -> Void) {
64+
// null check
65+
if properties["DomainURL"] == "" || properties["DomainURL"] == nil {
66+
let error = WebAuthError.shared.propertyMissingException()
67+
// log error
68+
let loggerMessage = "Read properties failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
69+
logw(loggerMessage, cname: "cidaas-sdk-error-log")
70+
71+
DispatchQueue.main.async {
72+
callback(Result.failure(error: error))
73+
}
74+
return
75+
}
76+
77+
// validating fields
78+
if (sub == "" || fcmId == "") {
79+
let error = WebAuthError.shared.propertyMissingException()
80+
error.errorMessage = "sub or fcmId must not be empty"
81+
DispatchQueue.main.async {
82+
callback(Result.failure(error: error))
83+
}
84+
return
85+
}
86+
87+
AccessTokenController.shared.getAccessToken(sub: sub) {
88+
switch $0 {
89+
case .failure(let error):
90+
DispatchQueue.main.async {
91+
callback(Result.failure(error: error))
92+
}
93+
break
94+
case .success(let tokenResponse):
95+
// call updateFCMToken
96+
SettingsService.shared.updateFCMToken(accessToken: tokenResponse.data.access_token, fcmId: fcmId, properties: properties) {
97+
switch $0 {
98+
case .failure(let error):
99+
// log error
100+
let loggerMessage = "Update FCM service failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
101+
logw(loggerMessage, cname: "cidaas-sdk-error-log")
102+
103+
// return failure callback
104+
DispatchQueue.main.async {
105+
callback(Result.failure(error: error))
106+
}
107+
return
108+
case .success(let serviceResponse):
109+
// log success
110+
let loggerMessage = "Update FCM service success : " + "Status code - " + String(describing: serviceResponse.status)
111+
logw(loggerMessage, cname: "cidaas-sdk-success-log")
112+
113+
// return callback
114+
DispatchQueue.main.async {
115+
callback(Result.success(result: serviceResponse))
116+
}
117+
}
118+
}
119+
break
120+
}
121+
}
122+
}
123+
124+
// get pending notification list
125+
public func getPendingNotification(sub: String, properties: Dictionary<String, String>, callback: @escaping(Result<PendingNotificationListResponseEntity>) -> Void) {
126+
// null check
127+
if properties["DomainURL"] == "" || properties["DomainURL"] == nil {
128+
let error = WebAuthError.shared.propertyMissingException()
129+
// log error
130+
let loggerMessage = "Read properties failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
131+
logw(loggerMessage, cname: "cidaas-sdk-error-log")
132+
133+
DispatchQueue.main.async {
134+
callback(Result.failure(error: error))
135+
}
136+
return
137+
}
138+
139+
// validating fields
140+
if (sub == "") {
141+
let error = WebAuthError.shared.propertyMissingException()
142+
error.errorMessage = "sub must not be empty"
143+
DispatchQueue.main.async {
144+
callback(Result.failure(error: error))
145+
}
146+
return
147+
}
148+
149+
AccessTokenController.shared.getAccessToken(sub: sub) {
150+
switch $0 {
151+
case .failure(let error):
152+
DispatchQueue.main.async {
153+
callback(Result.failure(error: error))
154+
}
155+
break
156+
case .success(let tokenResponse):
157+
// getting userDeviceId
158+
let userDeviceId = DBHelper.shared.getUserDeviceId(key: properties["DomainURL"] ?? "OAuthUserDeviceId")
159+
160+
// call getPendingNotificationList
161+
SettingsService.shared.getPendingNotificationList(accessToken: tokenResponse.data.access_token, userDeviceId: userDeviceId, properties: properties) {
162+
switch $0 {
163+
case .failure(let error):
164+
// log error
165+
let loggerMessage = "Get pending notification service failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
166+
logw(loggerMessage, cname: "cidaas-sdk-error-log")
167+
168+
// return failure callback
169+
DispatchQueue.main.async {
170+
callback(Result.failure(error: error))
171+
}
172+
return
173+
case .success(let serviceResponse):
174+
// log success
175+
let loggerMessage = "Get pending notification service success : " + "Status code - " + String(describing: serviceResponse.status)
176+
logw(loggerMessage, cname: "cidaas-sdk-success-log")
177+
178+
// return callback
179+
DispatchQueue.main.async {
180+
callback(Result.success(result: serviceResponse))
181+
}
182+
}
183+
}
184+
break
185+
}
186+
}
187+
}
188+
189+
// deny notification request
190+
public func denyNotificationRequest(sub: String, statusId: String, rejectReason: String, properties: Dictionary<String, String>, callback: @escaping(Result<DenyNotificationResponseEntity>) -> Void) {
191+
// null check
192+
if properties["DomainURL"] == "" || properties["DomainURL"] == nil {
193+
let error = WebAuthError.shared.propertyMissingException()
194+
// log error
195+
let loggerMessage = "Read properties failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
196+
logw(loggerMessage, cname: "cidaas-sdk-error-log")
197+
198+
DispatchQueue.main.async {
199+
callback(Result.failure(error: error))
200+
}
201+
return
202+
}
203+
204+
// validating fields
205+
if (sub == "") {
206+
let error = WebAuthError.shared.propertyMissingException()
207+
error.errorMessage = "sub must not be empty"
208+
DispatchQueue.main.async {
209+
callback(Result.failure(error: error))
210+
}
211+
return
212+
}
213+
214+
AccessTokenController.shared.getAccessToken(sub: sub) {
215+
switch $0 {
216+
case .failure(let error):
217+
DispatchQueue.main.async {
218+
callback(Result.failure(error: error))
219+
}
220+
break
221+
case .success(let tokenResponse):
222+
223+
// call denyNotificationRequest
224+
SettingsService.shared.denyNotificationRequest(accessToken: tokenResponse.data.access_token, statusId: statusId, rejectReason: rejectReason, properties: properties) {
225+
switch $0 {
226+
case .failure(let error):
227+
// log error
228+
let loggerMessage = "Deny notification service failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
229+
logw(loggerMessage, cname: "cidaas-sdk-error-log")
230+
231+
// return failure callback
232+
DispatchQueue.main.async {
233+
callback(Result.failure(error: error))
234+
}
235+
return
236+
case .success(let serviceResponse):
237+
// log success
238+
let loggerMessage = "Deny notification service success : " + "Status code - " + String(describing: serviceResponse.status)
239+
logw(loggerMessage, cname: "cidaas-sdk-success-log")
240+
241+
// return callback
242+
DispatchQueue.main.async {
243+
callback(Result.success(result: serviceResponse))
244+
}
245+
}
246+
}
247+
break
248+
}
249+
}
250+
}
61251
}

Cidaas/Classes/Core/Controllers/Repository/Verification/Settings/VerificationSettingsController.swift

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,134 @@ public class VerificationSettingsController {
7070
}
7171
}
7272
}
73+
74+
// delete verification from properties
75+
public func deleteVerificationByType(sub: String, verificationType: String, properties: Dictionary<String, String>, callback: @escaping(Result<DeleteResponseEntity>) -> Void) {
76+
// null check
77+
if properties["DomainURL"] == "" || properties["DomainURL"] == nil {
78+
let error = WebAuthError.shared.propertyMissingException()
79+
// log error
80+
let loggerMessage = "Read properties failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
81+
logw(loggerMessage, cname: "cidaas-sdk-error-log")
82+
83+
DispatchQueue.main.async {
84+
callback(Result.failure(error: error))
85+
}
86+
return
87+
}
88+
89+
// validating fields
90+
if (sub == "" || verificationType == "") {
91+
let error = WebAuthError.shared.propertyMissingException()
92+
error.errorMessage = "sub must not be empty"
93+
DispatchQueue.main.async {
94+
callback(Result.failure(error: error))
95+
}
96+
return
97+
}
98+
99+
AccessTokenController.shared.getAccessToken(sub: sub) {
100+
switch $0 {
101+
case .failure(let error):
102+
DispatchQueue.main.async {
103+
callback(Result.failure(error: error))
104+
}
105+
break
106+
case .success(let tokenResponse):
107+
// getting userDeviceId
108+
let userDeviceId = DBHelper.shared.getUserDeviceId(key: properties["DomainURL"] ?? "OAuthUserDeviceId")
109+
110+
// call getMFAList service
111+
VerificationSettingsService.shared.deleteVerification(accessToken: tokenResponse.data.access_token, userDeviceId: userDeviceId, verificationType: verificationType, properties: properties) {
112+
switch $0 {
113+
case .failure(let error):
114+
// log error
115+
let loggerMessage = "Delete verification service failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
116+
logw(loggerMessage, cname: "cidaas-sdk-error-log")
117+
118+
// return failure callback
119+
DispatchQueue.main.async {
120+
callback(Result.failure(error: error))
121+
}
122+
return
123+
case .success(let serviceResponse):
124+
// log success
125+
let loggerMessage = "Delete verification service success : " + "Status code - " + String(describing: serviceResponse.status)
126+
logw(loggerMessage, cname: "cidaas-sdk-success-log")
127+
128+
// return callback
129+
DispatchQueue.main.async {
130+
callback(Result.success(result: serviceResponse))
131+
}
132+
}
133+
}
134+
break
135+
}
136+
}
137+
}
138+
139+
// delete verification by tenant
140+
public func deleteVerificationByDevice(sub: String, properties: Dictionary<String, String>, callback: @escaping(Result<DeleteResponseEntity>) -> Void) {
141+
// null check
142+
if properties["DomainURL"] == "" || properties["DomainURL"] == nil {
143+
let error = WebAuthError.shared.propertyMissingException()
144+
// log error
145+
let loggerMessage = "Read properties failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
146+
logw(loggerMessage, cname: "cidaas-sdk-error-log")
147+
148+
DispatchQueue.main.async {
149+
callback(Result.failure(error: error))
150+
}
151+
return
152+
}
153+
154+
// validating fields
155+
if (sub == "") {
156+
let error = WebAuthError.shared.propertyMissingException()
157+
error.errorMessage = "sub must not be empty"
158+
DispatchQueue.main.async {
159+
callback(Result.failure(error: error))
160+
}
161+
return
162+
}
163+
164+
AccessTokenController.shared.getAccessToken(sub: sub) {
165+
switch $0 {
166+
case .failure(let error):
167+
DispatchQueue.main.async {
168+
callback(Result.failure(error: error))
169+
}
170+
break
171+
case .success(let tokenResponse):
172+
// getting userDeviceId
173+
let userDeviceId = DBHelper.shared.getUserDeviceId(key: properties["DomainURL"] ?? "OAuthUserDeviceId")
174+
175+
// call getMFAList service
176+
VerificationSettingsService.shared.deleteAllVerification(accessToken: tokenResponse.data.access_token, userDeviceId: userDeviceId, properties: properties) {
177+
switch $0 {
178+
case .failure(let error):
179+
// log error
180+
let loggerMessage = "Delete all verification service failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
181+
logw(loggerMessage, cname: "cidaas-sdk-error-log")
182+
183+
// return failure callback
184+
DispatchQueue.main.async {
185+
callback(Result.failure(error: error))
186+
}
187+
return
188+
case .success(let serviceResponse):
189+
// log success
190+
let loggerMessage = "Delete all verification service success : " + "Status code - " + String(describing: serviceResponse.status)
191+
logw(loggerMessage, cname: "cidaas-sdk-success-log")
192+
193+
// return callback
194+
DispatchQueue.main.async {
195+
callback(Result.success(result: serviceResponse))
196+
}
197+
}
198+
}
199+
break
200+
}
201+
}
202+
}
73203
}

Cidaas/Classes/Core/Helpers/Enums/WebAuthErrorCode.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,4 +209,7 @@ public enum WebAuthErrorCode : Int32 {
209209
case DELETE_VERIFICATION_SERVICE_FAILURE = 10173
210210

211211
case END_POINTS_SERVICE_FAILURE = 10174
212+
case DENY_REQUEST_SERVICE_FAILURE = 10175
213+
case UPDATE_FCM_SERVICE_FAILURE = 10176
214+
case PENDING_NOTIFICATION_LIST_SERVICE_FAILURE = 10177
212215
}

Cidaas/Classes/Core/Helpers/General/URLHelper.swift

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,16 +109,15 @@ public class URLHelper {
109109
public var linkUserURL = "/users-srv/user/linkaccount"
110110
public var linkedUsersURL = "/users-srv/userinfo/social"
111111
public var unlinkUserURL = "/users-srv/user/unlinkaccount"
112-
113112
public var locationListURL = "/access-control-srv/location/list"
114113
public var locationEmissionURL = "/access-control-srv/notification/locationchange"
115-
116114
public var beaconListURL = "/access-control-srv/devices/beacons/configs"
117115
public var beaconEmissionURL = "/access-control-srv/notification/beaconemit"
118-
119116
public var socialURL = "/login-srv/social/token"
120-
121117
public var endpointsURL = "/.well-known/openid-configuration"
118+
public var denyRequestURL = "/verification-srv/notification/reject"
119+
public var updateFCMTokenURL = "/devices-srv/device/updatefcm"
120+
public var pendingNotificationListURL = "/verification-srv/notification/initiated"
122121

123122
public func getRequestIdURL() -> String {
124123
return requestIdURL
@@ -128,6 +127,18 @@ public class URLHelper {
128127
return endpointsURL
129128
}
130129

130+
public func getDenyRequestURL() -> String {
131+
return denyRequestURL
132+
}
133+
134+
public func getUpdateFCMTokenURL() -> String {
135+
return updateFCMTokenURL
136+
}
137+
138+
public func getPendingNotificationListURL(userDeviceId: String) -> String {
139+
return pendingNotificationListURL + "/" + userDeviceId
140+
}
141+
131142
public func getLocationListURL() -> String {
132143
return locationListURL
133144
}

Cidaas/Classes/Core/Helpers/Locale/StringsHelper.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,4 +220,7 @@ public class StringsHelper {
220220
public var DELETE_VERIFICATION_SERVICE_FAILURE: String = "Delete verification service failure"
221221

222222
public var END_POINTS_SERVICE_FAILURE: String = "Well known openid config service failure"
223+
public var DENY_REQUEST_SERVICE_FAILURE: String = "Deny request service failure"
224+
public var UPDATE_FCM_SERVICE_FAILURE: String = "Update FCM token service failure"
225+
public var PENDING_NOTIFICATION_LIST_SERVICE_FAILURE: String = "Pending notification service failure"
223226
}

0 commit comments

Comments
 (0)