sendSMS method
Sends an SMS to a single user retutns the remaining balance after the sms is sent
Implementation
Future<double> sendSMS({
required String token,
required String to,
required String from,
required String text,
}) async {
final uri = Uri.https(authority, '/v1/sms/');
final payload = {'to': to, 'text': text, 'sender': from};
_dio.options.headers = {'Authorization': 'Bearer $token'};
late Response<Map<String, dynamic>> res;
Map data;
try {
res = await _dio.postUri(uri, data: payload);
data = res.data as Map<String, dynamic>;
} on DioError catch (e, s) {
throw PindoError(
message: (e.response?.data as Map)['message'],
statusCode: (e.response?.data as Map)['status'] ?? res.statusCode,
type: e.type.valueToString,
stackTrace: s,
);
} on TypeError {
throw PindoCastingError();
} on Exception {
rethrow;
}
if (data.containsKey('remaining_balance')) {
return data['remaining_balance'];
}
throw PindoUnexpectedResponseError(
expected: 'remaining_balance',
received: data,
);
}