import 'dart:convert'; import 'dart:io'; import 'package:http/http.dart' as http; import 'package:http_parser/http_parser.dart'; import 'package:job_app/config/apiUrl.dart'; import 'package:job_app/models/APiResponse.dart'; import 'package:job_app/models/user/user.dart'; class RegisterService { UserModel userModel; Future registerUser({String firstName,String lastName,String phoneNumber,String jobTitle,String email,String password,String country,String city,File file}) async { int statusCode = -1; var request = new http.MultipartRequest( 'POST', Uri.parse(ApiUrl.url+'v1/signup_user')); Map headers = {'Content-Type': 'application/json'}; request.headers.addAll(headers); request.fields['city'] = city; request.fields['country'] = country; request.fields['email'] = email; request.files.add(http.MultipartFile.fromBytes( 'file', await file.readAsBytes(), filename: 'some-file-name.jpg', contentType: new MediaType("image", "png"))); request.fields['firstname'] = firstName; request.fields['jobtitle'] = jobTitle; request.fields['lastname'] = lastName; request.fields['password'] = password; request.fields['phonenumber'] = phoneNumber; try { var result = await request.send(); statusCode = result.statusCode; if (statusCode == 200 || statusCode == 201) { var responseData = await result.stream.toBytes(); var responseString = String.fromCharCodes(responseData); final jsonData = json.decode(responseString); userModel = UserModel.fromJson(jsonData); return ApiResponseModel(statusCode: statusCode,errorMessage: null,data: userModel); } else if (statusCode == 409) { return ApiResponseModel( statusCode: statusCode, errorMessage: "Email is already in use"); } else { print(statusCode); } } catch (e) { print(e); return ApiResponseModel(errorMessage: e); } return null; } }