import 'dart:convert'; import 'dart:io'; import 'package:aman_kassa_flutter/core/base/base_service.dart'; import 'package:aman_kassa_flutter/core/entity/Goods.dart'; import 'package:aman_kassa_flutter/core/models/Message.dart'; import 'package:aman_kassa_flutter/core/models/Response.dart'; import '../models/authResponse.dart'; import 'package:http/http.dart' as http; /// The service responsible for networking requests class ApiService extends BaseService { static const endpoint = 'https://kassa-test.aman.com.kz/ru/api/v2'; var client = new http.Client(); Future authenticate(String email, String password) async { Map requestBody = { 'email': email, 'password': password }; var response = await requestFormData('/authenticate', requestBody); final respStr = await response.stream.bytesToString(); AuthResponse aman = AuthResponse.fromJson(json.decode(respStr)); return aman.body; } Future> isActive(String token) async { Map requestBody = {'api_token': token}; var response = await requestFormData('/test_auth', requestBody); final respStr = await response.stream.bytesToString(); return Response.fromJson(json.decode(respStr), Message.fromJson); } Future> logout(String token) async { Map requestBody = {'api_token': token}; var response = await requestFormData('/logout', requestBody); final respStr = await response.stream.bytesToString(); return Response.fromJson(json.decode(respStr), Message.fromJson); } Future requestFormData(String point, Map requestBody) async { Map headers = { HttpHeaders.contentTypeHeader: "multipart/form-data", HttpHeaders.cacheControlHeader: "no-cache" }; var uri = Uri.parse('$endpoint$point'); var request = http.MultipartRequest('POST', uri) ..headers.addAll( headers) //if u have headers, basic auth, token bearer... Else remove line ..fields.addAll(requestBody); return await request.send(); } Future> getGoodsFromServer(String token) async { Map requestBody = {'api_token': token}; var response = await requestFormData('/goods', requestBody); final respStr = await response.stream.bytesToString(); print(respStr); return Response.fromJsonDynamic(json.decode(respStr)); } Future> getCategoryFromServer(String token) async { Map requestBody = {'api_token': token}; var response = await requestFormData('/goods_category', requestBody); final respStr = await response.stream.bytesToString(); print(respStr); return Response.fromJsonDynamic(json.decode(respStr)); } Future> getServiceFromServer(String token) async { Map requestBody = {'api_token': token}; var response = await requestFormData('/services', requestBody); final respStr = await response.stream.bytesToString(); print(respStr); return Response.fromJsonDynamic(json.decode(respStr)); } }