generateToken method
Implementation
@override
Future<Either<NetworkError, DigitalpayeResponseToken>> generateToken() async {
try {
final url = config.isSandbox
? Constantes.apiUrlSandbox
: '${Constantes.apiUrlProd}/${Constantes.versionApp}/auth';
String basicAuth =
'Basic ${base64Encode(utf8.encode('${config.apiKey}:${config.apiSecret}'))}';
final response = await http.post(
Uri.parse(url),
headers: {
'Authorization': basicAuth,
'Content-Type': 'application/json',
},
);
if (response.statusCode == 200) {
final data = jsonDecode(response.body);
return Right(
DigitalpayeResponseToken(
codeStatus: data["code_status"],
status: data["status"],
token: data["token"],
exp: data["exp"],
),
);
} else {
final data = jsonDecode(response.body);
return Left(
NetworkError(
codeStatus: data["code_status"],
status: data["status"],
message: EnumResponseNetwork.from(value: data["message"])
.localizableValue,
),
);
}
} catch (e) {
// Gérer les erreurs
return Left(NetworkError(
message: EnumResponseNetwork.from(value: e.toString()).localizableValue,
));
}
}