import 'dart:convert'; import 'dart:io'; import 'package:job_app/config/apiUrl.dart'; import 'package:job_app/models/APiResponse.dart'; import 'package:job_app/singletons/locators.dart'; import 'package:http/http.dart' as http; import 'package:http_parser/http_parser.dart'; import '../getToken.dart'; class UpdateUserInfo{ Future updateInfos({String firstName,String lastName,String phoneNumber,String jobTitle,String email,String country,String city,File file})async{ int statusCode = -1; String token =await locator.get().getTokenValue(); if(token!="" && token!="InvalidToken" && token!='token'){ final request = await http.MultipartRequest('PATCH', Uri.parse(ApiUrl.url+'v1/update_user')); Map headers = {'Content-Type': 'application/json','Authorization': 'Bearer $token',}; 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['phonenumber'] = phoneNumber; var result = await request.send(); statusCode=result.statusCode; var responseData = await result.stream.toBytes(); var responseString = String.fromCharCodes(responseData); final jsonData = json.decode(responseString); print(jsonData); if(statusCode==200 || statusCode==201){ var responseData = await result.stream.toBytes(); var responseString = String.fromCharCodes(responseData); final jsonData = json.decode(responseString); print(jsonData); return ApiResponseModel(statusCode: statusCode,errorMessage: null,data: jsonData); }else{ return ApiResponseModel(statusCode: statusCode,errorMessage: "Error",data: "Please try again later"); } } return ApiResponseModel(statusCode: statusCode,errorMessage: "Try again later",data: null); } }