From a5d53b680364e36ac3baed381872439db2048b8d Mon Sep 17 00:00:00 2001 From: venbaittech Date: Fri, 13 Sep 2024 17:17:48 +0530 Subject: [PATCH] CHANGE_ : Chat Bot Flow Changes --- .env | 8 +- assets/Nhance_N.png | Bin 0 -> 7824 bytes lib/pages/enrollment/addons.dart | 9 +- lib/pages/enrollment/empDetails.dart | 3 + lib/pages/postEnrollment/chatbot.dart | 162 +++++++++++++++--- .../postEnrollment/service/api_service.dart | 57 +++--- 6 files changed, 192 insertions(+), 47 deletions(-) create mode 100644 assets/Nhance_N.png diff --git a/.env b/.env index 267d625..9a9d739 100644 --- a/.env +++ b/.env @@ -1,4 +1,4 @@ -API_URL=https://venbait.in/nhance/dev/employeeRest/ -TICKET_API_URL=https://venbait.in/nhance/helpdesk/dev/api -BASE_HREF=/nhance/employee/dev/ -ENV=development \ No newline at end of file +API_URL=https://dev.venbait.in/nhance/uat/employeeRest/ +TICKET_API_URL=https://dev.venbait.in/nhance/helpdesk/uat/api +BASE_HREF=/nhance/employee/uat/ +ENV=production \ No newline at end of file diff --git a/assets/Nhance_N.png b/assets/Nhance_N.png new file mode 100644 index 0000000000000000000000000000000000000000..a0121c742e68b55b30b10e1f33f387245f0ba134 GIT binary patch literal 7824 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 literal 0 HcmV?d00001 diff --git a/lib/pages/enrollment/addons.dart b/lib/pages/enrollment/addons.dart index aafc64b..5db343e 100644 --- a/lib/pages/enrollment/addons.dart +++ b/lib/pages/enrollment/addons.dart @@ -993,7 +993,8 @@ class _addOnsDetailsState extends State { var calculation = { 'client_policy_id': topUpClientPolicyId, 'emp_code': empCodeString, - 'si': choosedSiValue + 'si': choosedSiValue, + 'client_branch_id': empClientBranchId }; print(calculation); @@ -1058,7 +1059,8 @@ class _addOnsDetailsState extends State { var calculation = { 'client_policy_id': topUpParentClientPolicyId, 'emp_code': empCodeString, - 'si': choosedSiValue + 'si': choosedSiValue, + 'client_branch_id': empClientBranchId }; print(calculation); @@ -1125,7 +1127,8 @@ class _addOnsDetailsState extends State { var calculation = { 'client_policy_id': addOnsDependentClientPolicyId, 'emp_code': empCodeString, - 'si': choosedDependentValue + 'si': choosedDependentValue, + 'client_branch_id': empClientBranchId }; print(calculation); diff --git a/lib/pages/enrollment/empDetails.dart b/lib/pages/enrollment/empDetails.dart index 874bbee..a5497cb 100644 --- a/lib/pages/enrollment/empDetails.dart +++ b/lib/pages/enrollment/empDetails.dart @@ -85,6 +85,7 @@ class _empDetailsState extends State { dynamic selfEmpCode; dynamic selfFamilyFloaterKey; dynamic selfEmpStatus; + dynamic selfUnit; dynamic gmcDataIsEmpty = 1; dynamic gpaDataIsEmpty = 1; dynamic hrPrimaryId; @@ -219,6 +220,7 @@ class _empDetailsState extends State { selfFamilyFloaterKey = selfDetails['family_floater_key']; // print(clientDetails); selfEmpStatus = selfDetails['emp_status']; + selfUnit = selfDetails['unit']; }); final SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.setString('selfEmpStatus', selfEmpStatus); @@ -458,6 +460,7 @@ class _empDetailsState extends State { 'client_policy_id': floatedData['client_policy_id'], 'created_by': primaryId, 'is_createdby_hr': is_createdby_hr, + 'unit': selfUnit, // Add the 'id' field only if action is 'Edit' if (action == 'Edit') 'id': floatedData['employee_id'], }); diff --git a/lib/pages/postEnrollment/chatbot.dart b/lib/pages/postEnrollment/chatbot.dart index 1cc6ea2..19da9a2 100644 --- a/lib/pages/postEnrollment/chatbot.dart +++ b/lib/pages/postEnrollment/chatbot.dart @@ -1,6 +1,8 @@ import 'package:dash_chat_2/dash_chat_2.dart'; import 'package:flutter/material.dart'; import 'package:nhance_app_pwa/pages/postEnrollment/service/api_service.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:url_launcher/url_launcher.dart'; import '../../customAppBar/customAppBar.dart'; import 'data.dart'; @@ -18,6 +20,11 @@ class _chatbotState extends State { dynamic returnMessage; dynamic mobileNo; dynamic policyID; + dynamic empCode; + dynamic empClientBranchId; + dynamic client_id; + dynamic navigation_type; + dynamic navigation; @override void initState() { @@ -32,8 +39,31 @@ class _chatbotState extends State { } void quickReplyOptions() async { - final response = - await apiService.getBotDetails('Start', '1', '0', '', '', ''); + final SharedPreferences prefs = await SharedPreferences.getInstance(); + empCode = prefs.getString('empCode'); + empClientBranchId = prefs.getString('empClientBranchId'); + client_id = prefs.getString('client_id'); + Map chatBotDataApi = { + 'request_for': 'Start', + 'is_option': '1', + 'option': '0', + 'mobile_no': '', + 'policy_id': '', + 'emp_code': empCode, + 'client_id': client_id, + 'client_branch_id': empClientBranchId + }; + chatBotDataApi = + chatBotDataApi.map((key, value) => MapEntry(key, value.toString())); + // final url; + // if (is_option != '0') { + // url = Uri.parse( + // '${Environment.apiUrl}getChatResponse?request_for=$requestFor&is_option=$is_option&option=$option&mobile_no=$mobileNo&policy_id=$policyID'); + // } else { + // url = Uri.parse( + // '${Environment.apiUrl}getChatResponse?request_for=$requestFor&is_option=$is_option&text=$returnMessage&value=$option&mobile_no=$mobileNo&policy_id=$policyID'); + // } + final response = await apiService.getBotDetails(chatBotDataApi); print(response); if (response['status'] == 'success') { print('check 2'); @@ -45,6 +75,9 @@ class _chatbotState extends State { print('isOptionStatus: $isOptionStatus'); requestStatus = data['request_for']; print('requestStatus: $requestStatus'); + navigation = data['navigation']; + navigation_type = data['navigation_type']; + setState(() { firstApiOptions = Map.from(optionsData); print('firstApiOptions: $firstApiOptions'); @@ -107,10 +140,51 @@ class _chatbotState extends State { messages.insert(0, loadingMessage); }); + Map chatBotDataApi; + if (isOptionStatus != '0') { + chatBotDataApi = { + 'request_for': requestStatus, + 'is_option': isOptionStatus, + 'option': messageText, + 'mobile_no': '', + 'policy_id': '', + 'emp_code': empCode, + 'client_id': client_id, + 'client_branch_id': empClientBranchId + }; + } else { + chatBotDataApi = { + 'request_for': requestStatus, + 'is_option': isOptionStatus, + 'text': returnMessage, + 'value': messageText, + 'mobile_no': mobileNo, + 'policy_id': policyID, + 'emp_code': empCode, + 'client_id': client_id, + 'client_branch_id': empClientBranchId + }; + } + + chatBotDataApi = + chatBotDataApi.map((key, value) => MapEntry(key, value.toString())); + // Simulate API call with a delay of 2 seconds await Future.delayed(Duration(seconds: 2)); - final response = await apiService.getBotDetails(requestStatus, - isOptionStatus, messageText, returnMessage, mobileNo, policyID); + // final response = await apiService.getBotDetails(requestStatus, + // isOptionStatus, messageText, returnMessage, mobileNo, policyID); + // Future> getBotDetails(String requestFor, is_option, + // option, returnMessage, mobileNo, policyID) + // final url; + // if (is_option != '0') { + // url = Uri.parse( + // '${Environment.apiUrl}getChatResponse?request_for=$requestFor&is_option=$is_option&option=$option&mobile_no=$mobileNo&policy_id=$policyID'); + // } else { + // url = Uri.parse( + // '${Environment.apiUrl}getChatResponse?request_for=$requestFor&is_option=$is_option&text=$returnMessage&value=$option&mobile_no=$mobileNo&policy_id=$policyID'); + // } + + final response = await apiService.getBotDetails(chatBotDataApi); if (response['status'] == 'success') { dynamic chatApiData = response['data']; @@ -119,6 +193,8 @@ class _chatbotState extends State { returnMessage = chatApiData['text']; isOptionStatus = chatApiData['is_option']; requestStatus = chatApiData['request_for']; + navigation = chatApiData['navigation']; + navigation_type = chatApiData['navigation_type']; if (chatApiData.containsKey('mobile_no')) { mobileNo = chatApiData['mobile_no']; @@ -128,27 +204,49 @@ class _chatbotState extends State { } setState(() { + print(returnMessage); // Split and format the returnMessage String formattedMessage = ''; if (returnMessage != null) { - if (returnMessage.contains('%')) { - try { - List messageParts = returnMessage - .split('%') - .map((part) => part.trim()) - .cast() - .toList(); - formattedMessage = messageParts - .asMap() - .map((index, part) => MapEntry(index, '${index + 1}. $part')) - .values - .join('\n'); - } catch (e) { - print('Error splitting returnMessage: $e'); - formattedMessage = returnMessage; // Fallback to original message + if (navigation == '1') { + if (navigation_type == 'form') { + if (returnMessage == 'open_service_form' || + returnMessage == 'open_sales_form' || + returnMessage == 'open_gmc_form' || + returnMessage == 'open_gpa_form') { + var details = {'claimsDetails': '', 'fromClaimPage': 1}; + Navigator.pushNamed(context, 'planclaimsform', + arguments: details); + } + } else if (navigation_type == 'dialpad') { + print(returnMessage); + _openDialPad(returnMessage); + } else if (navigation_type == 'mail') { + print(returnMessage); + _openEmail(returnMessage); } } else { - formattedMessage = returnMessage; + if (returnMessage.contains('%')) { + try { + List messageParts = returnMessage + .split('%') + .map((part) => part.trim()) + .cast() + .toList(); + formattedMessage = messageParts + .asMap() + .map( + (index, part) => MapEntry(index, '${index + 1}. $part')) + .values + .join('\n'); + } catch (e) { + print('Error splitting returnMessage: $e'); + formattedMessage = + returnMessage; // Fallback to original message + } + } else { + formattedMessage = returnMessage; + } } } else { print('returnMessage is null'); @@ -193,6 +291,30 @@ class _chatbotState extends State { } } + void _openDialPad(String phoneNumber) async { + final url = 'tel:$phoneNumber'; + if (await canLaunch(url)) { + await launch(url); + } else { + throw 'Could not open dial pad for $phoneNumber'; + } + } + + void _openEmail(String email) async { + final Uri params = Uri( + scheme: 'mailto', + path: email, + query: + 'subject=Your Subject&body=Hello', // Add default subject and body here + ); + var url = params.toString(); + if (await canLaunch(url)) { + await launch(url); + } else { + throw 'Could not open email client for $email'; + } + } + @override Widget build(BuildContext context) { return Scaffold( diff --git a/lib/pages/postEnrollment/service/api_service.dart b/lib/pages/postEnrollment/service/api_service.dart index 5ce96a6..3621937 100644 --- a/lib/pages/postEnrollment/service/api_service.dart +++ b/lib/pages/postEnrollment/service/api_service.dart @@ -126,34 +126,51 @@ class ApiService { Navigator.pushNamed(context, 'login'); } - Future> getBotDetails(String requestFor, is_option, - option, returnMessage, mobileNo, policyID) async { - print('requestFor: $requestFor'); - print('is_option: $is_option'); - print('option: $option'); - print('returnMessage: $returnMessage'); - print('mobileNo: $mobileNo'); - print('policyID: $policyID'); + Future> getBotDetails( + Map formData) async { if (_token == null) { await _initializeToken(); } - final url; - if (is_option != '0') { - url = Uri.parse( - '${Environment.apiUrl}getChatResponse?request_for=$requestFor&is_option=$is_option&option=$option&mobile_no=$mobileNo&policy_id=$policyID'); - } else { - url = Uri.parse( - '${Environment.apiUrl}getChatResponse?request_for=$requestFor&is_option=$is_option&text=$returnMessage&value=$option&mobile_no=$mobileNo&policy_id=$policyID'); - } + final url = Uri.parse('${Environment.apiUrl}getChatResponse'); + // Convert formData to Map + Map stringFormData = + formData.map((key, value) => MapEntry(key, value.toString())); print(url); - - final headers = { + final response = await _makePostRequest(url, stringFormData, { + 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': 'Bearer $_token' ?? '', - }; - final response = await _makeGetRequest(url, headers); + }); return response; } + // Future> getBotDetails(String requestFor, is_option, + // option, returnMessage, mobileNo, policyID) async { + // print('requestFor: $requestFor'); + // print('is_option: $is_option'); + // print('option: $option'); + // print('returnMessage: $returnMessage'); + // print('mobileNo: $mobileNo'); + // print('policyID: $policyID'); + // if (_token == null) { + // await _initializeToken(); + // } + // final url; + // if (is_option != '0') { + // url = Uri.parse( + // '${Environment.apiUrl}getChatResponse?request_for=$requestFor&is_option=$is_option&option=$option&mobile_no=$mobileNo&policy_id=$policyID'); + // } else { + // url = Uri.parse( + // '${Environment.apiUrl}getChatResponse?request_for=$requestFor&is_option=$is_option&text=$returnMessage&value=$option&mobile_no=$mobileNo&policy_id=$policyID'); + // } + // print(url); + // + // final headers = { + // 'Authorization': 'Bearer $_token' ?? '', + // }; + // final response = await _makeGetRequest(url, headers); + // return response; + // } + Future> _makeGetRequest( Uri url, Map headers) async { final response = await http.get(url, headers: headers);