import 'dart:convert'; import 'dart:typed_data'; import '/flutterlib/flutter_util.dart'; import 'api_manager.dart'; export 'api_manager.dart' show ApiCallResponse; const _kPrivateApiFunctionName = 'ffPrivateApiCall'; /// Start Numstation Group Code class NumstationGroup { static String baseUrl = 'https://numstation.bepto.io'; static Map headers = {}; static LoginCall loginCall = LoginCall(); static RefreshTokenCall refreshTokenCall = RefreshTokenCall(); static SendOTPCall sendOTPCall = SendOTPCall(); static SubmitOTPCall submitOTPCall = SubmitOTPCall(); static ResetPasswordCall resetPasswordCall = ResetPasswordCall(); static RegisterCall registerCall = RegisterCall(); static GetRolesCall getRolesCall = GetRolesCall(); static PrivacyPolicyCall privacyPolicyCall = PrivacyPolicyCall(); static TermsAndConditionsCall termsAndConditionsCall = TermsAndConditionsCall(); static ChangePasswordCall changePasswordCall = ChangePasswordCall(); static LogoutCall logoutCall = LogoutCall(); static ToggleNotifiactionStatusCall toggleNotifiactionStatusCall = ToggleNotifiactionStatusCall(); static GetNotificationsSettingsCall getNotificationsSettingsCall = GetNotificationsSettingsCall(); static UserListCall userListCall = UserListCall(); static GetUserDetailsCall getUserDetailsCall = GetUserDetailsCall(); static CreateUserCall createUserCall = CreateUserCall(); static UpdateUserCall updateUserCall = UpdateUserCall(); static RoleListCall roleListCall = RoleListCall(); static DeleteUserCall deleteUserCall = DeleteUserCall(); static AccessLogsCall accessLogsCall = AccessLogsCall(); static GroupPermissionsCall groupPermissionsCall = GroupPermissionsCall(); static GetPermissionOfRoleCall getPermissionOfRoleCall = GetPermissionOfRoleCall(); static AddPermissionToRoleCall addPermissionToRoleCall = AddPermissionToRoleCall(); static RemovePermissionToRoleCall removePermissionToRoleCall = RemovePermissionToRoleCall(); static CheckRoleHasPermissionCall checkRoleHasPermissionCall = CheckRoleHasPermissionCall(); static GetCompanyDetailsCall getCompanyDetailsCall = GetCompanyDetailsCall(); static DeleteMemberDocumentCall deleteMemberDocumentCall = DeleteMemberDocumentCall(); static SaveOrUpdateMemberCall saveOrUpdateMemberCall = SaveOrUpdateMemberCall(); static UpdateCompanyDetailsCall updateCompanyDetailsCall = UpdateCompanyDetailsCall(); static DocumentListCall documentListCall = DocumentListCall(); static DocumentCategoriesCall documentCategoriesCall = DocumentCategoriesCall(); static ViewDocumentCall viewDocumentCall = ViewDocumentCall(); static AddDocumentCall addDocumentCall = AddDocumentCall(); static DocumentLibrarySearchCall documentLibrarySearchCall = DocumentLibrarySearchCall(); } class LoginCall { Future call({ String? email = '', String? password = '', }) async { final ffApiRequestBody = ''' { "email": "${email}", "password": "${password}" }'''; return ApiManager.instance.makeApiCall( callName: 'login', apiUrl: '${NumstationGroup.baseUrl}/api/login', callType: ApiCallType.POST, headers: { 'Content-Type': 'application/json', }, params: {}, body: ffApiRequestBody, bodyType: BodyType.JSON, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } String? token(dynamic response) => castToType(getJsonField( response, r'''$.access_token''', )); } class RefreshTokenCall { Future call({ String? token = '', }) async { return ApiManager.instance.makeApiCall( callName: 'refreshToken', apiUrl: '${NumstationGroup.baseUrl}/api/refresh', callType: ApiCallType.POST, headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ${token}', }, params: {}, bodyType: BodyType.JSON, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class SendOTPCall { Future call({ String? email = '', String? token = '', }) async { final ffApiRequestBody = ''' { "email": "${email}" }'''; return ApiManager.instance.makeApiCall( callName: 'sendOTP', apiUrl: '${NumstationGroup.baseUrl}/api/forgot-password/send-otp', callType: ApiCallType.POST, headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ${token}', }, params: {}, body: ffApiRequestBody, bodyType: BodyType.JSON, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } String? sentOTPmessage(dynamic response) => castToType(getJsonField( response, r'''$.message''', )); } class SubmitOTPCall { Future call({ int? otp, String? token = '', }) async { final ffApiRequestBody = ''' { "otp": "${otp}", "token": "${token}" }'''; return ApiManager.instance.makeApiCall( callName: 'submitOTP', apiUrl: '${NumstationGroup.baseUrl}/api/forgot-password/submit-otp', callType: ApiCallType.POST, headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ${token}', }, params: {}, body: ffApiRequestBody, bodyType: BodyType.JSON, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } dynamic useridRP(dynamic response) => getJsonField( response, r'''$.user_id''', ); dynamic submitOTPmessage(dynamic response) => getJsonField( response, r'''$.message''', ); } class ResetPasswordCall { Future call({ int? userId, String? password = '', String? passwordConfirmation = '', String? token = '', }) async { final ffApiRequestBody = ''' { "user_id": ${userId}, "password": "${password}", "password_confirmation": "${passwordConfirmation}", "token": "${token}" }'''; return ApiManager.instance.makeApiCall( callName: 'resetPassword', apiUrl: '${NumstationGroup.baseUrl}/api/forgot-password/reset-password', callType: ApiCallType.POST, headers: { 'Authorization': 'Bearer ${token}', }, params: {}, body: ffApiRequestBody, bodyType: BodyType.JSON, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class RegisterCall { Future call({ String? firstName = '', String? lastName = '', String? email = '', int? phone, String? password = '', String? passwordConfirmation = '', int? roleId, }) async { final ffApiRequestBody = ''' { "first_name": "${firstName}", "last_name": "${lastName}", "email": "${email}", "phone": "${phone}", "password": "${password}", "password_confirmation": "${passwordConfirmation}", "role_id": "${roleId}" }'''; return ApiManager.instance.makeApiCall( callName: 'register', apiUrl: '${NumstationGroup.baseUrl}/api/register', callType: ApiCallType.POST, headers: { 'Content-Type': 'application/json', }, params: {}, body: ffApiRequestBody, bodyType: BodyType.JSON, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class GetRolesCall { Future call() async { return ApiManager.instance.makeApiCall( callName: 'getRoles', apiUrl: '${NumstationGroup.baseUrl}/api/register/get-roles', callType: ApiCallType.POST, headers: { 'Content-Type': 'application/json', }, params: {}, bodyType: BodyType.JSON, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } List? rolesID(dynamic response) => (getJsonField( response, r'''$.roles[:].id''', true, ) as List?) ?.withoutNulls .map((x) => castToType(x)) .withoutNulls .toList(); List? roles(dynamic response) => getJsonField( response, r'''$.roles''', true, ) as List?; List? rolesName(dynamic response) => getJsonField( response, r'''$.roles[:].display_name''', true, ) as List?; } class PrivacyPolicyCall { Future call() async { return ApiManager.instance.makeApiCall( callName: 'Privacy Policy', apiUrl: '${NumstationGroup.baseUrl}/api/get-privacy-policy', callType: ApiCallType.GET, headers: {}, params: {}, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class TermsAndConditionsCall { Future call() async { return ApiManager.instance.makeApiCall( callName: 'Terms and Conditions', apiUrl: '${NumstationGroup.baseUrl}/api/get-terms-and-conditions', callType: ApiCallType.GET, headers: {}, params: {}, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class ChangePasswordCall { Future call({ String? password = '', String? newPassword = '', String? newPasswordConfirmation = '', String? token = '', }) async { final ffApiRequestBody = ''' { "password": "${password}", "new_password": "${newPassword}", "new_password_confirmation": "${newPasswordConfirmation}" }'''; return ApiManager.instance.makeApiCall( callName: 'change password', apiUrl: '${NumstationGroup.baseUrl}/api/settings/change-password', callType: ApiCallType.POST, headers: { 'Authorization': 'Bearer ${token}', }, params: {}, body: ffApiRequestBody, bodyType: BodyType.JSON, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class LogoutCall { Future call({ String? token = '', }) async { return ApiManager.instance.makeApiCall( callName: 'logout', apiUrl: '${NumstationGroup.baseUrl}/api/logout', callType: ApiCallType.POST, headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ${token}', }, params: {}, bodyType: BodyType.JSON, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class ToggleNotifiactionStatusCall { Future call({ String? token = '', bool? notification, }) async { return ApiManager.instance.makeApiCall( callName: 'Toggle Notifiaction Status', apiUrl: '${NumstationGroup.baseUrl}/api/settings/toggle-notification-status', callType: ApiCallType.POST, headers: { 'Authorization': 'Bearer ${token}', }, params: { 'notification': "user_push_notification", }, bodyType: BodyType.MULTIPART, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class GetNotificationsSettingsCall { Future call({ String? token = '', }) async { return ApiManager.instance.makeApiCall( callName: 'Get Notifications Settings', apiUrl: '${NumstationGroup.baseUrl}/api/settings/get-notification-settings', callType: ApiCallType.GET, headers: { 'Authorization': 'Bearer ${token}', }, params: {}, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class UserListCall { Future call({ String? token = '', }) async { return ApiManager.instance.makeApiCall( callName: 'User List', apiUrl: '${NumstationGroup.baseUrl}/api/users/list', callType: ApiCallType.GET, headers: { 'Authorization': 'Bearer ${token}', }, params: {}, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } List? username(dynamic response) => getJsonField( response, r'''$.company_users[:].name''', true, ) as List?; List? role(dynamic response) => getJsonField( response, r'''$.company_users[:].user_role.display_name''', true, ) as List?; List? email(dynamic response) => getJsonField( response, r'''$.company_users[:].email''', true, ) as List?; List? status(dynamic response) => getJsonField( response, r'''$.company_users[:].user_role.status''', true, ) as List?; } class GetUserDetailsCall { Future call({ String? token = '', int? id, }) async { return ApiManager.instance.makeApiCall( callName: 'getUserDetails', apiUrl: '${NumstationGroup.baseUrl}/api/users/data/${id}', callType: ApiCallType.GET, headers: { 'Authorization': 'Bearer ${token}', }, params: {}, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class CreateUserCall { Future call({ String? email = '', String? firstName = '', String? lastName = '', String? password = '', int? phone, String? roleId = '', String? status = '', String? token = '', }) async { return ApiManager.instance.makeApiCall( callName: 'create user', apiUrl: '${NumstationGroup.baseUrl}/api/users/create', callType: ApiCallType.POST, headers: { 'Authorization': 'Bearer ${token}', }, params: { 'email': email, 'first_name': firstName, 'last_name': lastName, 'password': password, 'phone': phone, 'role_id': roleId, 'status': status, }, bodyType: BodyType.MULTIPART, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class UpdateUserCall { Future call({ String? token = '', String? email = '', String? firstName = '', String? lastName = '', int? phone, String? roleId = '', String? status = '', int? userId, }) async { return ApiManager.instance.makeApiCall( callName: 'update user', apiUrl: '${NumstationGroup.baseUrl}/api/users/update', callType: ApiCallType.POST, headers: { 'Authorization': 'Bearer ${token}', }, params: { 'email': email, 'first_name': firstName, 'last_name': lastName, 'phone': phone, 'role_id': roleId, 'status': status, 'user_id': userId, }, bodyType: BodyType.MULTIPART, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class RoleListCall { Future call({ String? token = '', }) async { return ApiManager.instance.makeApiCall( callName: 'Role List', apiUrl: '${NumstationGroup.baseUrl}/api/users/role/list', callType: ApiCallType.GET, headers: { 'Authorization': 'Bearer ${token}', }, params: {}, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } List? rolesID(dynamic response) => getJsonField( response, r'''$.roles[:].id''', true, ) as List?; List? rolesAccessLevel(dynamic response) => getJsonField( response, r'''$.roles[:].access_level''', true, ) as List?; List? rolesStatus(dynamic response) => getJsonField( response, r'''$.roles[:].status''', true, ) as List?; List? rolesDisplayName(dynamic response) => getJsonField( response, r'''$.roles[:].display_name''', true, ) as List?; } class DeleteUserCall { Future call({ String? token = '', int? userId, }) async { return ApiManager.instance.makeApiCall( callName: 'Delete User', apiUrl: '${NumstationGroup.baseUrl}/api/users/delete', callType: ApiCallType.POST, headers: { 'Authorization': 'Bearer ${token}', }, params: { 'user_id': userId, }, bodyType: BodyType.MULTIPART, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class AccessLogsCall { Future call({ String? token = '', }) async { return ApiManager.instance.makeApiCall( callName: 'Access logs', apiUrl: '${NumstationGroup.baseUrl}/api/users/access/logs', callType: ApiCallType.GET, headers: { 'Authorization': 'Bearer ${token}', }, params: {}, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class GroupPermissionsCall { Future call({ String? token = '', }) async { return ApiManager.instance.makeApiCall( callName: 'Group Permissions', apiUrl: '${NumstationGroup.baseUrl}/api/users/permission/group', callType: ApiCallType.GET, headers: { 'Authorization': 'Bearer ${token}', }, params: {}, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } bool? access(dynamic response) => castToType(getJsonField( response, r'''$.status''', )); List? roleID(dynamic response) => (getJsonField( response, r'''$.group[:].id''', true, ) as List?) ?.withoutNulls .map((x) => castToType(x)) .withoutNulls .toList(); List? permissionID(dynamic response) => (getJsonField( response, r'''$.group[:].permissions[:].id''', true, ) as List?) ?.withoutNulls .map((x) => castToType(x)) .withoutNulls .toList(); List? permissionName(dynamic response) => (getJsonField( response, r'''$.group[:].permissions[:].display_name''', true, ) as List?) ?.withoutNulls .map((x) => castToType(x)) .withoutNulls .toList(); List? roleName(dynamic response) => (getJsonField( response, r'''$.group[:].name''', true, ) as List?) ?.withoutNulls .map((x) => castToType(x)) .withoutNulls .toList(); List? permissionList(dynamic response) => getJsonField( response, r'''$.group''', true, ) as List?; } class GetPermissionOfRoleCall { Future call({ String? token = '', String? roleId = '', }) async { return ApiManager.instance.makeApiCall( callName: 'Get Permission of Role', apiUrl: '${NumstationGroup.baseUrl}/api/users/role/permission/${roleId}', callType: ApiCallType.GET, headers: { 'Authorization': 'Bearer ${token}', }, params: { 'role_id': roleId, }, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } List? getPermissionsID(dynamic response) => (getJsonField( response, r'''$.permission[:].permission_id''', true, ) as List?) ?.withoutNulls .map((x) => castToType(x)) .withoutNulls .toList(); } class AddPermissionToRoleCall { Future call({ String? token = '', String? roleId = '', String? permissionId = '', }) async { return ApiManager.instance.makeApiCall( callName: 'Add permission to role', apiUrl: '${NumstationGroup.baseUrl}/api/users/role/add/permission', callType: ApiCallType.POST, headers: { 'Authorization': 'Bearer ${token}', }, params: { 'role_id': roleId, 'permission_id': permissionId, }, bodyType: BodyType.MULTIPART, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class RemovePermissionToRoleCall { Future call({ String? token = '', String? roleId = '', String? permissionId = '', }) async { return ApiManager.instance.makeApiCall( callName: 'Remove Permission to role', apiUrl: '${NumstationGroup.baseUrl}/api/users/role/remove/permission', callType: ApiCallType.POST, headers: { 'Authorization': 'Bearer ${token}', }, params: { 'role_id': roleId, 'permission_id': permissionId, }, bodyType: BodyType.MULTIPART, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class CheckRoleHasPermissionCall { Future call({ String? token = '', String? roleId = '', int? permissionId, }) async { return ApiManager.instance.makeApiCall( callName: 'Check role has permission', apiUrl: '${NumstationGroup.baseUrl}/api/users/role/has/permission', callType: ApiCallType.POST, headers: { 'Authorization': 'Bearer ${token}', }, params: { 'role_id': roleId, 'permission_id': permissionId, }, bodyType: BodyType.MULTIPART, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class GetCompanyDetailsCall { Future call({ String? token = '', }) async { return ApiManager.instance.makeApiCall( callName: 'Get Company Details', apiUrl: '${NumstationGroup.baseUrl}/api/company/details', callType: ApiCallType.GET, headers: { 'Authorization': 'Bearer ${token}', }, params: {}, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class DeleteMemberDocumentCall { Future call({ String? token = '', int? id, }) async { return ApiManager.instance.makeApiCall( callName: 'Delete Member Document', apiUrl: '${NumstationGroup.baseUrl}/api/company/delete/member/file', callType: ApiCallType.POST, headers: { 'Authorization': 'Bearer ${token}', }, params: { 'id': id, }, bodyType: BodyType.MULTIPART, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class SaveOrUpdateMemberCall { Future call({ String? token = '', int? companyId, String? position = '', String? title = '', String? nameEnglish = '', String? nameChinese = '', String? email = '', int? phone, String? documentType = '', String? country = '', String? addressEnglish = '', String? addressChinese = '', String? yearDate = '', String? monthDate = '', String? dayDate = '', String? documentNumber = '', int? memberId, String? city = '', FFUploadedFile? documentFile, }) async { return ApiManager.instance.makeApiCall( callName: 'Save or Update Member', apiUrl: '${NumstationGroup.baseUrl}/api/company/save/member', callType: ApiCallType.POST, headers: { 'Authorization': 'Bearer ${token}', }, params: { 'company_id': companyId, 'position': position, 'title': title, 'name_english': nameEnglish, 'name_chinese': nameChinese, 'phone': phone, 'email': email, 'document_type': documentType, 'country': country, 'address_english': addressEnglish, 'address_chinese': addressChinese, 'year_date': yearDate, 'month_date': monthDate, 'day_date': dayDate, 'document_number': documentNumber, 'member_id': memberId, 'document_file': documentFile, 'city': city, }, bodyType: BodyType.MULTIPART, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class UpdateCompanyDetailsCall { Future call({ String? token = '', String? nameEnglish = '', String? nameChinese = '', String? registeredOfficeAddressEnglish = '', String? registeredOfficeAddressChinese = '', int? brNumber, }) async { return ApiManager.instance.makeApiCall( callName: 'Update Company Details', apiUrl: '${NumstationGroup.baseUrl}/api/company/save/details', callType: ApiCallType.POST, headers: { 'Authorization': 'Bearer ${token}', }, params: { 'name_english': nameEnglish, 'name_chinese': nameChinese, 'registered_office_address_english': registeredOfficeAddressEnglish, 'registered_office_address_chinese': registeredOfficeAddressChinese, 'br_number': brNumber, }, bodyType: BodyType.MULTIPART, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class DocumentListCall { Future call({ String? token = '', }) async { return ApiManager.instance.makeApiCall( callName: 'Document List', apiUrl: '${NumstationGroup.baseUrl}/api/bookkeeping/document/list', callType: ApiCallType.GET, headers: { 'Authorization': 'BEarer ${token}', }, params: {}, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } List? docList(dynamic response) => getJsonField( response, r'''$.documents''', true, ) as List?; } class DocumentCategoriesCall { Future call({ String? token = '', }) async { return ApiManager.instance.makeApiCall( callName: 'Document Categories', apiUrl: '${NumstationGroup.baseUrl}/api/bookkeeping/document/categories', callType: ApiCallType.GET, headers: { 'Authorization': 'Bearer ${token}', }, params: {}, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class ViewDocumentCall { Future call({ String? token = '', String? id = '', }) async { return ApiManager.instance.makeApiCall( callName: 'View Document', apiUrl: '${NumstationGroup.baseUrl}/api/bookkeeping/document/${id}', callType: ApiCallType.GET, headers: { 'Authorization': 'Bearer ${token}', }, params: {}, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class AddDocumentCall { Future call({ FFUploadedFile? document, String? name = '', String? description = '', String? bookkeepingDocumentCategoryId = '', String? token = '', }) async { return ApiManager.instance.makeApiCall( callName: 'Add Document', apiUrl: '${NumstationGroup.baseUrl}/api/bookkeeping/add/document', callType: ApiCallType.POST, headers: { 'Authorization': 'Bearer ${token}', }, params: { 'document': document, 'name': name, 'description': description, 'bookkeeping_document_category_id': bookkeepingDocumentCategoryId, }, bodyType: BodyType.MULTIPART, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } class DocumentLibrarySearchCall { Future call({ String? s = '', String? status = '', String? categoryId = '', String? fixDate = '', String? dateFrom = '', String? dateTo = '', String? token = '', }) async { return ApiManager.instance.makeApiCall( callName: 'Document Library Search', apiUrl: '${NumstationGroup.baseUrl}/api/bookkeeping/document/library', callType: ApiCallType.POST, headers: { 'Authorization': 'Bearer ${token}', }, params: { 's': s, 'status': status, 'category_id': categoryId, 'fix_date': fixDate, 'date_from': dateFrom, 'date_to': dateTo, }, bodyType: BodyType.MULTIPART, returnBody: true, encodeBodyUtf8: false, decodeUtf8: false, cache: false, alwaysAllowBody: false, ); } } /// End Numstation Group Code class ApiPagingParams { int nextPageNumber = 0; int numItems = 0; dynamic lastResponse; ApiPagingParams({ required this.nextPageNumber, required this.numItems, required this.lastResponse, }); @override String toString() => 'PagingParams(nextPageNumber: $nextPageNumber, numItems: $numItems, lastResponse: $lastResponse,)'; } String _serializeList(List? list) { list ??= []; try { return json.encode(list); } catch (_) { return '[]'; } } String _serializeJson(dynamic jsonVar, [bool isList = false]) { jsonVar ??= (isList ? [] : {}); try { return json.encode(jsonVar); } catch (_) { return isList ? '[]' : '{}'; } }