Skip to content

Commit

Permalink
Merge pull request #41 from Cidaas/development
Browse files Browse the repository at this point in the history
Development
  • Loading branch information
cidaas-samples authored Dec 3, 2018
2 parents a61d51f + fb1c620 commit 6f3fe2a
Show file tree
Hide file tree
Showing 14 changed files with 1,004 additions and 25 deletions.
2 changes: 1 addition & 1 deletion Cidaas.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

Pod::Spec.new do |s|
s.name = 'Cidaas'
s.version = '1.0.9'
s.version = '1.0.10'
s.summary = 'Native SDK for iOS providing login, registration and verification functionalities'
s.homepage = 'https://github.com/Cidaas/cidaas-sdk-ios-v2'
s.license = { :type => 'MIT', :file => 'LICENSE' }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,194 @@ public class SettingsController {
}
}
}

// update fcm
public func updateFCMToken(sub: String, fcmId: String, properties: Dictionary<String, String>, callback: @escaping(Result<UpdateFCMTokenResponseEntity>) -> Void) {
// null check
if properties["DomainURL"] == "" || properties["DomainURL"] == nil {
let error = WebAuthError.shared.propertyMissingException()
// log error
let loggerMessage = "Read properties failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
logw(loggerMessage, cname: "cidaas-sdk-error-log")

DispatchQueue.main.async {
callback(Result.failure(error: error))
}
return
}

// validating fields
if (sub == "" || fcmId == "") {
let error = WebAuthError.shared.propertyMissingException()
error.errorMessage = "sub or fcmId must not be empty"
DispatchQueue.main.async {
callback(Result.failure(error: error))
}
return
}

AccessTokenController.shared.getAccessToken(sub: sub) {
switch $0 {
case .failure(let error):
DispatchQueue.main.async {
callback(Result.failure(error: error))
}
break
case .success(let tokenResponse):
// call updateFCMToken
SettingsService.shared.updateFCMToken(accessToken: tokenResponse.data.access_token, fcmId: fcmId, properties: properties) {
switch $0 {
case .failure(let error):
// log error
let loggerMessage = "Update FCM service failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
logw(loggerMessage, cname: "cidaas-sdk-error-log")

// return failure callback
DispatchQueue.main.async {
callback(Result.failure(error: error))
}
return
case .success(let serviceResponse):
// log success
let loggerMessage = "Update FCM service success : " + "Status code - " + String(describing: serviceResponse.status)
logw(loggerMessage, cname: "cidaas-sdk-success-log")

// return callback
DispatchQueue.main.async {
callback(Result.success(result: serviceResponse))
}
}
}
break
}
}
}

// get pending notification list
public func getPendingNotification(sub: String, properties: Dictionary<String, String>, callback: @escaping(Result<PendingNotificationListResponseEntity>) -> Void) {
// null check
if properties["DomainURL"] == "" || properties["DomainURL"] == nil {
let error = WebAuthError.shared.propertyMissingException()
// log error
let loggerMessage = "Read properties failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
logw(loggerMessage, cname: "cidaas-sdk-error-log")

DispatchQueue.main.async {
callback(Result.failure(error: error))
}
return
}

// validating fields
if (sub == "") {
let error = WebAuthError.shared.propertyMissingException()
error.errorMessage = "sub must not be empty"
DispatchQueue.main.async {
callback(Result.failure(error: error))
}
return
}

AccessTokenController.shared.getAccessToken(sub: sub) {
switch $0 {
case .failure(let error):
DispatchQueue.main.async {
callback(Result.failure(error: error))
}
break
case .success(let tokenResponse):
// getting userDeviceId
let userDeviceId = DBHelper.shared.getUserDeviceId(key: properties["DomainURL"] ?? "OAuthUserDeviceId")

// call getPendingNotificationList
SettingsService.shared.getPendingNotificationList(accessToken: tokenResponse.data.access_token, userDeviceId: userDeviceId, properties: properties) {
switch $0 {
case .failure(let error):
// log error
let loggerMessage = "Get pending notification service failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
logw(loggerMessage, cname: "cidaas-sdk-error-log")

// return failure callback
DispatchQueue.main.async {
callback(Result.failure(error: error))
}
return
case .success(let serviceResponse):
// log success
let loggerMessage = "Get pending notification service success : " + "Status code - " + String(describing: serviceResponse.status)
logw(loggerMessage, cname: "cidaas-sdk-success-log")

// return callback
DispatchQueue.main.async {
callback(Result.success(result: serviceResponse))
}
}
}
break
}
}
}

// deny notification request
public func denyNotificationRequest(sub: String, statusId: String, rejectReason: String, properties: Dictionary<String, String>, callback: @escaping(Result<DenyNotificationResponseEntity>) -> Void) {
// null check
if properties["DomainURL"] == "" || properties["DomainURL"] == nil {
let error = WebAuthError.shared.propertyMissingException()
// log error
let loggerMessage = "Read properties failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
logw(loggerMessage, cname: "cidaas-sdk-error-log")

DispatchQueue.main.async {
callback(Result.failure(error: error))
}
return
}

// validating fields
if (sub == "") {
let error = WebAuthError.shared.propertyMissingException()
error.errorMessage = "sub must not be empty"
DispatchQueue.main.async {
callback(Result.failure(error: error))
}
return
}

AccessTokenController.shared.getAccessToken(sub: sub) {
switch $0 {
case .failure(let error):
DispatchQueue.main.async {
callback(Result.failure(error: error))
}
break
case .success(let tokenResponse):

// call denyNotificationRequest
SettingsService.shared.denyNotificationRequest(accessToken: tokenResponse.data.access_token, statusId: statusId, rejectReason: rejectReason, properties: properties) {
switch $0 {
case .failure(let error):
// log error
let loggerMessage = "Deny notification service failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
logw(loggerMessage, cname: "cidaas-sdk-error-log")

// return failure callback
DispatchQueue.main.async {
callback(Result.failure(error: error))
}
return
case .success(let serviceResponse):
// log success
let loggerMessage = "Deny notification service success : " + "Status code - " + String(describing: serviceResponse.status)
logw(loggerMessage, cname: "cidaas-sdk-success-log")

// return callback
DispatchQueue.main.async {
callback(Result.success(result: serviceResponse))
}
}
}
break
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -70,4 +70,134 @@ public class VerificationSettingsController {
}
}
}

// delete verification from properties
public func deleteVerificationByType(sub: String, verificationType: String, properties: Dictionary<String, String>, callback: @escaping(Result<DeleteResponseEntity>) -> Void) {
// null check
if properties["DomainURL"] == "" || properties["DomainURL"] == nil {
let error = WebAuthError.shared.propertyMissingException()
// log error
let loggerMessage = "Read properties failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
logw(loggerMessage, cname: "cidaas-sdk-error-log")

DispatchQueue.main.async {
callback(Result.failure(error: error))
}
return
}

// validating fields
if (sub == "" || verificationType == "") {
let error = WebAuthError.shared.propertyMissingException()
error.errorMessage = "sub must not be empty"
DispatchQueue.main.async {
callback(Result.failure(error: error))
}
return
}

AccessTokenController.shared.getAccessToken(sub: sub) {
switch $0 {
case .failure(let error):
DispatchQueue.main.async {
callback(Result.failure(error: error))
}
break
case .success(let tokenResponse):
// getting userDeviceId
let userDeviceId = DBHelper.shared.getUserDeviceId(key: properties["DomainURL"] ?? "OAuthUserDeviceId")

// call getMFAList service
VerificationSettingsService.shared.deleteVerification(accessToken: tokenResponse.data.access_token, userDeviceId: userDeviceId, verificationType: verificationType, properties: properties) {
switch $0 {
case .failure(let error):
// log error
let loggerMessage = "Delete verification service failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
logw(loggerMessage, cname: "cidaas-sdk-error-log")

// return failure callback
DispatchQueue.main.async {
callback(Result.failure(error: error))
}
return
case .success(let serviceResponse):
// log success
let loggerMessage = "Delete verification service success : " + "Status code - " + String(describing: serviceResponse.status)
logw(loggerMessage, cname: "cidaas-sdk-success-log")

// return callback
DispatchQueue.main.async {
callback(Result.success(result: serviceResponse))
}
}
}
break
}
}
}

// delete verification by tenant
public func deleteVerificationByDevice(sub: String, properties: Dictionary<String, String>, callback: @escaping(Result<DeleteResponseEntity>) -> Void) {
// null check
if properties["DomainURL"] == "" || properties["DomainURL"] == nil {
let error = WebAuthError.shared.propertyMissingException()
// log error
let loggerMessage = "Read properties failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
logw(loggerMessage, cname: "cidaas-sdk-error-log")

DispatchQueue.main.async {
callback(Result.failure(error: error))
}
return
}

// validating fields
if (sub == "") {
let error = WebAuthError.shared.propertyMissingException()
error.errorMessage = "sub must not be empty"
DispatchQueue.main.async {
callback(Result.failure(error: error))
}
return
}

AccessTokenController.shared.getAccessToken(sub: sub) {
switch $0 {
case .failure(let error):
DispatchQueue.main.async {
callback(Result.failure(error: error))
}
break
case .success(let tokenResponse):
// getting userDeviceId
let userDeviceId = DBHelper.shared.getUserDeviceId(key: properties["DomainURL"] ?? "OAuthUserDeviceId")

// call getMFAList service
VerificationSettingsService.shared.deleteAllVerification(accessToken: tokenResponse.data.access_token, userDeviceId: userDeviceId, properties: properties) {
switch $0 {
case .failure(let error):
// log error
let loggerMessage = "Delete all verification service failure : " + "Error Code - " + String(describing: error.errorCode) + ", Error Message - " + error.errorMessage + ", Status Code - " + String(describing: error.statusCode)
logw(loggerMessage, cname: "cidaas-sdk-error-log")

// return failure callback
DispatchQueue.main.async {
callback(Result.failure(error: error))
}
return
case .success(let serviceResponse):
// log success
let loggerMessage = "Delete all verification service success : " + "Status code - " + String(describing: serviceResponse.status)
logw(loggerMessage, cname: "cidaas-sdk-success-log")

// return callback
DispatchQueue.main.async {
callback(Result.success(result: serviceResponse))
}
}
}
break
}
}
}
}
3 changes: 3 additions & 0 deletions Cidaas/Classes/Core/Helpers/Enums/WebAuthErrorCode.swift
Original file line number Diff line number Diff line change
Expand Up @@ -209,4 +209,7 @@ public enum WebAuthErrorCode : Int32 {
case DELETE_VERIFICATION_SERVICE_FAILURE = 10173

case END_POINTS_SERVICE_FAILURE = 10174
case DENY_REQUEST_SERVICE_FAILURE = 10175
case UPDATE_FCM_SERVICE_FAILURE = 10176
case PENDING_NOTIFICATION_LIST_SERVICE_FAILURE = 10177
}
19 changes: 15 additions & 4 deletions Cidaas/Classes/Core/Helpers/General/URLHelper.swift
Original file line number Diff line number Diff line change
Expand Up @@ -109,16 +109,15 @@ public class URLHelper {
public var linkUserURL = "/users-srv/user/linkaccount"
public var linkedUsersURL = "/users-srv/userinfo/social"
public var unlinkUserURL = "/users-srv/user/unlinkaccount"

public var locationListURL = "/access-control-srv/location/list"
public var locationEmissionURL = "/access-control-srv/notification/locationchange"

public var beaconListURL = "/access-control-srv/devices/beacons/configs"
public var beaconEmissionURL = "/access-control-srv/notification/beaconemit"

public var socialURL = "/login-srv/social/token"

public var endpointsURL = "/.well-known/openid-configuration"
public var denyRequestURL = "/verification-srv/notification/reject"
public var updateFCMTokenURL = "/devices-srv/device/updatefcm"
public var pendingNotificationListURL = "/verification-srv/notification/initiated"

public func getRequestIdURL() -> String {
return requestIdURL
Expand All @@ -128,6 +127,18 @@ public class URLHelper {
return endpointsURL
}

public func getDenyRequestURL() -> String {
return denyRequestURL
}

public func getUpdateFCMTokenURL() -> String {
return updateFCMTokenURL
}

public func getPendingNotificationListURL(userDeviceId: String) -> String {
return pendingNotificationListURL + "/" + userDeviceId
}

public func getLocationListURL() -> String {
return locationListURL
}
Expand Down
3 changes: 3 additions & 0 deletions Cidaas/Classes/Core/Helpers/Locale/StringsHelper.swift
Original file line number Diff line number Diff line change
Expand Up @@ -220,4 +220,7 @@ public class StringsHelper {
public var DELETE_VERIFICATION_SERVICE_FAILURE: String = "Delete verification service failure"

public var END_POINTS_SERVICE_FAILURE: String = "Well known openid config service failure"
public var DENY_REQUEST_SERVICE_FAILURE: String = "Deny request service failure"
public var UPDATE_FCM_SERVICE_FAILURE: String = "Update FCM token service failure"
public var PENDING_NOTIFICATION_LIST_SERVICE_FAILURE: String = "Pending notification service failure"
}
Loading

0 comments on commit 6f3fe2a

Please sign in to comment.