1160 lines
30 KiB
Dart
1160 lines
30 KiB
Dart
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<String, String> 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<ApiCallResponse> 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<String>(getJsonField(
|
|
response,
|
|
r'''$.access_token''',
|
|
));
|
|
}
|
|
|
|
class RefreshTokenCall {
|
|
Future<ApiCallResponse> 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<ApiCallResponse> 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<String>(getJsonField(
|
|
response,
|
|
r'''$.message''',
|
|
));
|
|
}
|
|
|
|
class SubmitOTPCall {
|
|
Future<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<int>? rolesID(dynamic response) => (getJsonField(
|
|
response,
|
|
r'''$.roles[:].id''',
|
|
true,
|
|
) as List?)
|
|
?.withoutNulls
|
|
.map((x) => castToType<int>(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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<bool>(getJsonField(
|
|
response,
|
|
r'''$.status''',
|
|
));
|
|
List<int>? roleID(dynamic response) => (getJsonField(
|
|
response,
|
|
r'''$.group[:].id''',
|
|
true,
|
|
) as List?)
|
|
?.withoutNulls
|
|
.map((x) => castToType<int>(x))
|
|
.withoutNulls
|
|
.toList();
|
|
List<int>? permissionID(dynamic response) => (getJsonField(
|
|
response,
|
|
r'''$.group[:].permissions[:].id''',
|
|
true,
|
|
) as List?)
|
|
?.withoutNulls
|
|
.map((x) => castToType<int>(x))
|
|
.withoutNulls
|
|
.toList();
|
|
List<String>? permissionName(dynamic response) => (getJsonField(
|
|
response,
|
|
r'''$.group[:].permissions[:].display_name''',
|
|
true,
|
|
) as List?)
|
|
?.withoutNulls
|
|
.map((x) => castToType<String>(x))
|
|
.withoutNulls
|
|
.toList();
|
|
List<String>? roleName(dynamic response) => (getJsonField(
|
|
response,
|
|
r'''$.group[:].name''',
|
|
true,
|
|
) as List?)
|
|
?.withoutNulls
|
|
.map((x) => castToType<String>(x))
|
|
.withoutNulls
|
|
.toList();
|
|
List? permissionList(dynamic response) => getJsonField(
|
|
response,
|
|
r'''$.group''',
|
|
true,
|
|
) as List?;
|
|
}
|
|
|
|
class GetPermissionOfRoleCall {
|
|
Future<ApiCallResponse> 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<int>? getPermissionsID(dynamic response) => (getJsonField(
|
|
response,
|
|
r'''$.permission[:].permission_id''',
|
|
true,
|
|
) as List?)
|
|
?.withoutNulls
|
|
.map((x) => castToType<int>(x))
|
|
.withoutNulls
|
|
.toList();
|
|
}
|
|
|
|
class AddPermissionToRoleCall {
|
|
Future<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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<ApiCallResponse> 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 ??= <String>[];
|
|
try {
|
|
return json.encode(list);
|
|
} catch (_) {
|
|
return '[]';
|
|
}
|
|
}
|
|
|
|
String _serializeJson(dynamic jsonVar, [bool isList = false]) {
|
|
jsonVar ??= (isList ? [] : {});
|
|
try {
|
|
return json.encode(jsonVar);
|
|
} catch (_) {
|
|
return isList ? '[]' : '{}';
|
|
}
|
|
}
|