send method
dynamic
send()
Implementation
send() async {
final RequestApiHelperConfigData config = RequestApiHelperConfig.load(
config: changeConfig,
);
Map<String, String> _header;
if (((config.withLoading!.widget != null && config.withLoading!.toogle != false) || config.withLoading!.toogle == true) || config.withLoading!.toogle == true) {
if (context != null) {
isLoading = true;
BackDark(view: config.withLoading).dialog(context);
}
}
bool ifResponseError = false;
try {
if (config.beforeSend != null) {
await config.beforeSend!;
}
String? token = await Session.load('token');
// input header
if (token != null && token != '') {
_header = {
'Accept': 'application/json',
'Authorization': token,
};
} else {
_header = {
'Accept': 'application/json',
};
}
try {
ifResponseError = await process(config: config, data: customData == null ? ((data == null) ? RequestData() : data) : null, header: _header, customData: customData, name: name, type: type, onUploadProgress: onUploadProgress);
} catch (__) {
ifResponseError = true;
}
if (context != null) {
currentContext = context;
}
} on SocketException catch (se) {
if (((config.withLoading!.widget != null && config.withLoading!.toogle != false) || config.withLoading!.toogle == true) && ifResponseError == false) {
if (context != null) {
isLoading = false;
Navigator.pop(context!);
}
}
if (config.socketMessage != null) {
Fluttertoast.showToast(msg: config.socketMessage!);
}
if (context != null) {
currentContext = context;
}
if (config.onSocket != null) {
return config.onSocket!(se);
}
if (config.socketMessage != null) {
if (context != null) {
if (currentContext != context || singleContext == true) {
if (config.socketRedirect != null) {
if (config.socketRedirect!.widget != null) {
Navigator.push(
context!,
MaterialPageRoute(
builder: (context) => config.socketRedirect!.widget!,
),
);
} else if (config.socketRedirect!.toogle == true) {
Navigator.push(
context!,
MaterialPageRoute(
builder: (context) => const Timeout(
buttonColor: Colors.blue,
),
),
);
}
}
}
}
}
} on TimeoutException catch (te) {
if (((config.withLoading!.widget != null && config.withLoading!.toogle != false) || config.withLoading!.toogle == true) && ifResponseError == false) {
if (context != null) {
isLoading = false;
Navigator.pop(context!);
}
}
if (config.timeoutMessage != null) {
Fluttertoast.showToast(msg: config.timeoutMessage!);
}
if (context != null) {
currentContext = context;
}
if (config.onTimeout != null) {
return config.onTimeout!(te);
}
if (config.timeoutMessage != null) {
if (context != null) {
if (currentContext != context || singleContext == true) {
if (config.timeoutRedirect != null) {
if (config.timeoutRedirect!.widget != null) {
Navigator.push(
context!,
MaterialPageRoute(
builder: (context) => config.timeoutRedirect!.widget!,
),
);
} else if (config.timeoutRedirect!.toogle == true) {
Navigator.push(
context!,
MaterialPageRoute(
builder: (context) => const Timeout(
buttonColor: Colors.blue,
),
),
);
}
}
}
}
}
} catch (e) {
if (((config.withLoading!.widget != null && config.withLoading!.toogle != false) || config.withLoading!.toogle == true) && ifResponseError == false) {
if (config.withLoading!.widget != null || config.withLoading!.toogle == true) {
if (context != null) {
isLoading = false;
Navigator.pop(context!);
}
}
}
if (context != null) {
currentContext = context;
}
if (config.onException != null) {
await config.onException!(e);
} else {
print(e.toString());
}
}
}