chat bug fixes

design_3.0_cx_module
WaseemAbbasi22 3 weeks ago
parent 077095502e
commit e303b4e099

@ -17,6 +17,7 @@ class URLs {
static const String chatHubUrlApi = "$chatHubUrl/api"; // new V2 apis
static const String chatHubUrlChat = "$chatHubUrl/hubs/chat"; // new V2 apis
static const String resetMessageCount = "$chatHubUrlApi/userChatHistory/AckMessages"; // new V2 apis
static const String chatApiKey = "f53a98286f82798d588f67a7f0db19f7aebc839e"; // new V2 apis
static String _host = host1;

@ -95,6 +95,50 @@ class ChatApiClient {
}
}
Future<bool> resetCountApi(int moduleCode, int referenceNumber, String? employeeNumber) async {
final Map<String, dynamic> payload = {
'moduleCode': moduleCode,
'ReferenceNumber': referenceNumber,
};
// final headers = chatAckHeaders(
// apiKey: URLs.chatApiKey,
// employeeNumber: employeeNumber.toString(),
// origin: 'http://localhost:4400',
// referer: 'http://localhost:4400/',
// userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
// );
final Response response = await ApiClient().postJsonForResponse(
URLs.resetMessageCount,
payload,
token: chatLoginResponse!.token,
// headers: headers,
);
// Response response = await ApiClient().postJsonForResponse(
// "${URLs.resetMessageCount}?moduleCode=$moduleCode&ReferenceNumber=$referenceNumber", {"moduleCode": moduleCode.toString(), "ReferenceNumber": referenceNumber.toString()},
// token: chatLoginResponse!.token);
return response.statusCode == 200;
}
Map<String, String> chatAckHeaders({
required String apiKey,
required String employeeNumber,
required String origin,
required String referer,
required String userAgent,
String acceptLanguage = 'en-US,en;q=0.9',
}) {
return {
'Accept': 'application/json, text/plain, */*',
'Content-Type': 'application/json',
// 'X-API-Key': apiKey,
// 'X-Employee-Number': employeeNumber,
};
}
Future<List<ChatAttachment>> viewAllDocuments(int moduleId, int referenceId) async {
Response response = await ApiClient().getJsonForResponse("${URLs.chatHubUrlApi}/attachments/conversation?referenceId=$referenceId&moduleCode=$moduleId", token: chatLoginResponse!.token);

@ -75,7 +75,7 @@ class _ChatPageState extends State<ChatPage> {
});
}
void loadChatHistory() {
void loadChatHistory() async {
// // String assigneeEmployeeNumber = Provider.of<ServiceRequestDetailProvider>(context, listen: false).currentWorkOrder?.data?.assignedEmployee?.employeeId ?? "";
// // String myEmployeeId = context.userProvider.user!.username!;
// //
@ -99,7 +99,9 @@ class _ChatPageState extends State<ChatPage> {
? Provider.of<ServiceRequestDetailProvider>(context, listen: false).currentWorkOrder!.data!.workOrderCreatedBy!.employeeId!
: Provider.of<ServiceRequestDetailProvider>(context, listen: false).currentWorkOrder!.data!.workOrderContactPerson.first.employeeId!))
: "");
Provider.of<ChatProvider>(context, listen: false).connectToHub(widget.moduleId, widget.requestId, myEmployeeId, receiver, widget.readOnly, isMounted: mounted);
ChatProvider chatProvider = Provider.of<ChatProvider>(context, listen: false);
chatProvider.connectToHub(widget.moduleId, widget.requestId, myEmployeeId, receiver, widget.readOnly, isMounted: mounted);
}
@override

@ -40,6 +40,7 @@ import 'package:path_provider/path_provider.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:signalr_netcore/hub_connection.dart';
import 'package:signalr_netcore/signalr_client.dart';
import 'package:test_sa/controllers/api_routes/api_manager.dart';
import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/modules/cx_module/chat/model/chat_login_response_model.dart';
@ -370,9 +371,37 @@ class ChatProvider with ChangeNotifier, DiagnosticableTreeMixin {
// }
}
}
// notifyListeners();
}
Future<bool> resetCount({
required int moduleId,
required int referenceNo,
String ?userId ,
}) async {
try {
return await ChatApiClient().resetCountApi(moduleId, referenceNo,userId);
} catch (e, stack) {
debugPrint('resetCount error: $e');
rethrow;
}
}
// Future<bool> resetCount({ required int moduleId,
// required int referenceNo}) async {
// Response response;
// try {
// response = await ApiManager.instance.post("${URLs.resetMessageCount}?moduleCode=$moduleId&ReferenceNumber=$referenceNo", body: {});
// notifyListeners();
// if (response.statusCode == 200) {
// return true;
// }
// return false;
// } catch (error) {
// notifyListeners();
// return false;
// }
// }
void updateUserChatHistoryStatusAsync(List data) {
try {
chatHubConnection!.invoke("UpdateUserChatHistoryStatusAsync", args: [data]);

@ -86,7 +86,11 @@ class _ChatWidgetState extends State<ChatWidget> {
minSize: 18,
child: IconButton(
icon: const Icon(Icons.chat_bubble),
onPressed: () {
onPressed: () async {
bool readStatus = await chatProvider.resetCount(moduleId: widget.moduleId, referenceNo: widget.requestId, userId: context.userProvider.user?.id);
if (readStatus) {
chatProvider.chatParticipantModel?.unreadCount = 0;
}
Navigator.push(
context,
CupertinoPageRoute(

@ -46,6 +46,7 @@ class ChatFilePicker extends StatelessWidget {
fromMediaPicker(BuildContext context, ImageSource imageSource) async {
XFile? pickedFile = await ImagePicker().pickImage(source: imageSource, imageQuality: 70, maxWidth: 800, maxHeight: 800);
if (pickedFile != null) {
//Has UI issues here top buttons not clickable smoothly
CroppedFile? croppedFile = await ImageCropper().cropImage(
sourcePath: pickedFile.path,
// aspectRatio: CropAspectRatio(ratioX: 1, ratioY: 1),

@ -5,7 +5,7 @@ class ChatParticipantModel {
String? title;
String? conversationType;
List<Participants>? participants;
// String? lastMessage;
dynamic lastMessage;
String? createdAt;
int? unreadCount;
@ -21,7 +21,7 @@ class ChatParticipantModel {
participants!.add(new Participants.fromJson(v));
});
}
// lastMessage = json['lastMessage'];
lastMessage = json['lastMessage'];
createdAt = json['createdAt'];
unreadCount = json['unreadCount'];
}
@ -34,7 +34,7 @@ class ChatParticipantModel {
if (participants != null) {
data['participants'] = participants!.map((v) => v.toJson()).toList();
}
// data['lastMessage'] = lastMessage;
data['lastMessage'] = lastMessage;
data['createdAt'] = createdAt;
data['unreadCount'] = unreadCount;
return data;

Loading…
Cancel
Save