Skip to content

Commit

Permalink
added support of setting server
Browse files Browse the repository at this point in the history
  • Loading branch information
AbhijeetRanjan308 committed Apr 17, 2024
1 parent 933ef4b commit 4f545fa
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 4 deletions.
30 changes: 26 additions & 4 deletions ios/Classes/SwiftKommunicateFlutterPlugin.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public class SwiftKommunicateFlutterPlugin: NSObject, FlutterPlugin, KMPreChatFo
var conversationTitle: String? = nil;
var conversationInfo: [AnyHashable: Any]? = nil;
var teamId: String? = nil;
var serverConfig: KMServerConfiguration = .defaultConfiguration;
static let KM_CONVERSATION_METADATA: String = "conversationMetadata";
static let CLIENT_CONVERSATION_ID: String = "clientConversationId";
static let CONVERSATION_ID: String = "conversationId";
Expand All @@ -36,7 +37,7 @@ public class SwiftKommunicateFlutterPlugin: NSObject, FlutterPlugin, KMPreChatFo
}

func addListener() {
Kommunicate.subscribeCustomEvents(events: [CustomEvent.messageReceive, CustomEvent.messageSend,CustomEvent.faqClick, CustomEvent.newConversation, CustomEvent.submitRatingClick, CustomEvent.restartConversationClick, CustomEvent.richMessageClick, CustomEvent.conversationBackPress, CustomEvent.conversationListBackPress, CustomEvent.conversationInfoClick ], callback: self)
Kommunicate.subscribeCustomEvents(events: [KMCustomEvent.messageReceive, KMCustomEvent.messageSend,KMCustomEvent.faqClick, KMCustomEvent.newConversation, KMCustomEvent.submitRatingClick, KMCustomEvent.restartConversationClick, KMCustomEvent.richMessageClick, KMCustomEvent.conversationBackPress, KMCustomEvent.conversationListBackPress, KMCustomEvent.conversationInfoClick ], callback: self)
}
func removeListener() {
Kommunicate.unsubcribeCustomEvents()
Expand All @@ -46,6 +47,17 @@ public class SwiftKommunicateFlutterPlugin: NSObject, FlutterPlugin, KMPreChatFo

if(call.method == "getPlatformVersion") {
result("iOS " + UIDevice.current.systemVersion)
} else if(call.method == "setServerConfiguration") {
guard let serverConfig = call.arguments as? String else {
self.sendErrorResultWithCallback(result: result, message: "Invalid Server Config")
return
}
switch serverConfig {
case "euConfiguration":
self.serverConfig = .euConfiguration
default:
self.sendErrorResultWithCallback(result: result, message: "It only supports `euConfiguration` for now.")
}
} else if(call.method == "isLoggedIn") {
result(Kommunicate.isLoggedIn)
} else if(call.method == "login") {
Expand All @@ -58,6 +70,9 @@ public class SwiftKommunicateFlutterPlugin: NSObject, FlutterPlugin, KMPreChatFo
self.sendErrorResultWithCallback(result: result, message: "Invalid or missing appId")
return
}
if serverConfig == .euConfiguration {
Kommunicate.setServerConfiguration(.euConfiguration)
}
Kommunicate.setup(applicationId: appId)
userDict.removeValue(forKey: "appId")

Expand All @@ -84,7 +99,9 @@ public class SwiftKommunicateFlutterPlugin: NSObject, FlutterPlugin, KMPreChatFo
self.sendErrorResultWithCallback(result: result, message: "Invalid or missing appId")
return
}

if serverConfig == .euConfiguration {
Kommunicate.setServerConfiguration(.euConfiguration)
}
Kommunicate.setup(applicationId: appId)
let kmUser = Kommunicate.createVisitorUser()
kmUser.applicationId = appId
Expand Down Expand Up @@ -322,7 +339,9 @@ public class SwiftKommunicateFlutterPlugin: NSObject, FlutterPlugin, KMPreChatFo

self.agentIds = agentIds
self.botIds = botIds

if serverConfig == .euConfiguration {
Kommunicate.setServerConfiguration(.euConfiguration)
}
if Kommunicate.isLoggedIn{
self.handleCreateConversation()
}else{
Expand Down Expand Up @@ -553,6 +572,9 @@ public class SwiftKommunicateFlutterPlugin: NSObject, FlutterPlugin, KMPreChatFo

kmUser.contactNumber = phoneNumber
kmUser.displayName = name
if serverConfig == .euConfiguration {
Kommunicate.setServerConfiguration(.euConfiguration)
}
Kommunicate.setup(applicationId: applicationKey)
Kommunicate.registerUser(kmUser, completion:{
response, error in
Expand Down Expand Up @@ -753,7 +775,7 @@ public class SwiftKommunicateFlutterPlugin: NSObject, FlutterPlugin, KMPreChatFo
public func richMessageClicked(conversationId: String, action: Any, type: String) {
let jsonEncoder = JSONEncoder()
var actionString: String = ""
if action is ListTemplate.Element, let actionElement = action as? ListTemplate.Element,
if action is KMListTemplate.Element, let actionElement = action as? KMListTemplate.Element,
let jsonData = try? jsonEncoder.encode(actionElement)
{
actionString = String(data: jsonData, encoding: String.Encoding.utf8) ?? ""
Expand Down
3 changes: 3 additions & 0 deletions lib/kommunicate_flutter.dart
Original file line number Diff line number Diff line change
Expand Up @@ -100,4 +100,7 @@ class KommunicateFlutterPlugin {
static Future<dynamic> hideAssigneeStatus(bool hide) async {
return await _channel.invokeMethod('hideAssigneeStatus', hide);
}
static Future<dynamic> setServerConfiguration(String serverName) async {
return await _channel.invokeListMethod('setServerConfiguration', serverName);
}
}

0 comments on commit 4f545fa

Please sign in to comment.