getApiByData method
Implementation
Future<Result<dynamic, String>> getApiByData(
String ppath,
dynamic pdata,
String pmethod,
bool? puseToken,
bool? pdataQueryParameters,
String? authorization) async {
Repository repository = Repository();
dynamic pheader;
if (puseToken != null) {
if (puseToken) {
DateTime dtNow = DateTime.now();
String strTemp =
"${dtNow.day < 10 ? "0" : ""}${dtNow.day}${dtNow.month < 10 ? "0" : ""}${dtNow.month}${dtNow.year}107569";
if (pdata == null) {
pdata = {
"ptoken": md5.convert(utf8.encode(strTemp)).toString().toLowerCase()
};
} else {
pdata["ptoken"] =
md5.convert(utf8.encode(strTemp)).toString().toLowerCase();
}
}
}
if (authorization != null) {
pheader = {'Authorization': authorization};
}
try {
Response? response = await repository.callDio(
ppath,
pdataQueryParameters == false ? pdata : null,
authorization != null ? pheader : null,
pdataQueryParameters == true ? pdata : null,
pmethod);
if (response!.statusCode == 200) {
Map<String, dynamic> map = response.data;
if (map["msgstatus"] != 1) {
return Failure(
map["description"] ?? "Falha na comunicação com a API.");
} else {
if (map["data"] is Map<String, dynamic>) {
return Success(map["data"] as Map<String, dynamic>);
} else if (map["data"] is List<dynamic>) {
return Success(map["data"] as List<dynamic>);
} else if (map["data"] != null) {
return Success(map["data"]);
} else {
dynamic result = {"data": "Sem retorno"};
return Success(result as Map<String, dynamic>);
}
}
} else {
return Failure(
response.statusMessage ?? "Falha na comunicação com a API.");
}
} catch (ex) {
return Failure(ex.toString().replaceAll("Exception:", "Erro interno: "));
}
}