signUpService function

Future<Map<String, dynamic>> signUpService(
  1. {required String type,
  2. required String sellerReference,
  3. required String merchantName,
  4. required String firstName,
  5. required String lastName,
  6. required String documentNumber,
  7. required String documentExtension,
  8. required String complement,
  9. required String nit,
  10. required String? nitImagePath,
  11. required String email,
  12. required String phone,
  13. required String password,
  14. required String confirmPassword,
  15. required String deviceId,
  16. required String merchantType,
  17. required String merchantPlace,
  18. required String lat,
  19. required String lng}
)

Implementation

Future<Map<String, dynamic>> signUpService({
  required String type,
  required String sellerReference,
  required String merchantName,
  required String firstName,
  required String lastName,
  required String documentNumber,
  required String documentExtension,
  required String complement,
  required String nit,
  required String? nitImagePath,
  required String email,
  required String phone,
  required String password,
  required String confirmPassword,
  required String deviceId,
  required String merchantType,
  required String merchantPlace,
  required String lat,
  required String lng,
}) async {
  final http.MultipartRequest request = http.MultipartRequest(
    'POST',
    Uri.parse(
      '${ServicesEnvironment.protocol}${ServicesEnvironment.authority}${ServicesEnvironment.unencodedPath}$endPoint',
    ),
  );

  request.fields.addAll(
    <String, String>{
      'reference': sellerReference,
      'name': merchantName,
      'email': email,
      'cellphone': phone,
      'first_name': firstName,
      'last_name': lastName,
      'ci_number': documentNumber,
      'ci_extension': documentExtension,
      'ci_complement': complement,
      'type': type,
      'nit_number': nit,
      'password': password,
      'password_confirmation': password,
      'device_serial': deviceId,
      "merchant_type": merchantType,
      "merchant_place": merchantPlace,
      "lat": lat,
      "lng": lng,
    },
  );

  if (nitImagePath != null) {
    request.files.add(
      http.MultipartFile(
        'nit_file',
        File(nitImagePath).readAsBytes().asStream(),
        File(nitImagePath).lengthSync(),
        filename: nitImagePath.split("/").last,
      ),
    );
  }

  request.headers.addAll(
    {
      'Content-Type': 'application/form-data',
    },
  );

  final http.StreamedResponse streamedResponse = await request.send();

  final http.Response response =
      await http.Response.fromStream(streamedResponse);

  Map<String, dynamic> decodedResponse;

  try {
    decodedResponse = json.decode(response.body);
  } catch (exception) {
    return Future.error(GlobalMessagesEnvironment.genericError);
  }

  return decodedResponse;
}