import 'dart:convert'; import 'package:async/async.dart'; import 'package:path/path.dart' as ext; import 'package:http/http.dart' as http; import 'package:http_parser/http_parser.dart'; import 'package:photolink_beta/Model/CustomResponse/APIResponse.dart'; import 'package:photolink_beta/Model/Trip/CreateTrip.dart'; import 'package:photolink_beta/Model/Trip/Trip.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'dart:async'; import 'dart:io'; class CreateNewTrips { String Get_token = "InvalidToken"; int statusCode = -1; bool Error_token = false; Future GetToken() async { final prefs = await SharedPreferences.getInstance(); if (prefs.getString('token') == null || prefs.getString('token') == '') { prefs.setString('token', 'InvalidToken'); } Get_token = prefs.getString('token'); print(Get_token); return Get_token.toString(); } /*******************************************Create coordination***************************************************************/ Future> NewTrip( File picture, String name, String description) async { Error_token = false; statusCode = -1; await GetToken(); final prefs = await SharedPreferences.getInstance(); var request = new http.MultipartRequest( "POST", Uri.http('51.222.156.166:8000', 'trip/')); Map headers = { 'Authorization': 'Bearer ' + Get_token, 'Accept': 'application/json', "Content-type": "multipart/form-data", }; request.headers.addAll(headers); request.fields['name'] = name; request.files.add(http.MultipartFile( 'picture', picture.readAsBytes().asStream(), picture.lengthSync(), filename: picture.path.split("/").last)); request.fields['description'] = description; var result = await request.send(); statusCode = result.statusCode; if (result.statusCode == 200 || result.statusCode == 201) { var responseData = await result.stream.toBytes(); var responseString = String.fromCharCodes(responseData); final jsonData = json.decode(responseString); Trip tripCreated = Trip.fromJson(jsonData); print('tripCreated : ' + tripCreated.id); prefs.setString('tripId', tripCreated.id); print(prefs.getString('tripId')); return APIResponse(statusCode: statusCode, data: tripCreated); } return APIResponse(statusCode: statusCode, errorMessage: 'Please check your info'); } }