organization method

Future<String> organization(
  1. {required String token,
  2. required String name,
  3. required String webHookURL,
  4. required int retriesCount}
)

Update organization settings. Returns the organization's new url

Implementation

Future<String> organization({
  required String token,
  required String name,
  required String webHookURL,
  required int retriesCount,
}) async {
  final uri = Uri.https(authority, '/orgs/self');
  final payload = {
    'name': name,
    'webhook_url': webHookURL,
    'sms_retries': retriesCount
  };

  _dio.options.headers = {'Authorization': 'Bearer $token'};
  late Response<Map<String, dynamic>> res;
  var data = {};

  try {
    res = await _dio.putUri(uri, data: payload);
    data = res.data!;
  } 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('self_url')) {
    return data['self_url'];
  }
  throw PindoUnexpectedResponseError(expected: 'self_url', received: data);
}