1 package com.srv4pos.server.api.sale; 2 3 import com.srv4pos.server.api.infrastructure.EmptyConnectionWriter; 4 import com.srv4pos.server.api.infrastructure.HttpMethod; 5 import com.srv4pos.server.api.infrastructure.StringConnectionWriter; 6 import com.srv4pos.server.api.infrastructure.credentials.Credentials; 7 import com.srv4pos.server.api.infrastructure.http.HttpHelper; 8 import com.srv4pos.server.api.infrastructure.http.Transport; 9 import com.srv4pos.server.api.infrastructure.request.StringResponse; 10 import com.srv4pos.server.api.transportation.TripInfo; 11 12 import java.net.URL; 13 import java.util.List; 14 15 import static com.srv4pos.server.api.infrastructure.http.HttpHelper.CONTENT_TYPE_APPLICATION_JSON; 16 import static com.srv4pos.server.api.infrastructure.request.RequestHelper.requestString; 17 import static com.srv4pos.server.api.infrastructure.request.RequestHelper.requestVoid; 18 import static java.lang.String.format; 19 20 public class TripService { 21 private URL url; 22 private Credentials credentials; 23 private Transport transport; 24 25 public TripService(URL url, Credentials credentials, Transport transport) { 26 this.url = url; 27 this.credentials = credentials; 28 this.transport = transport; 29 } 30 31 public void put(int sellerVersion, TripInfo tripInfo) { 32 requestVoid( 33 format("%s/trips/%s", credentials.getSellerId(), tripInfo.getIdentifier()), 34 HttpMethod.PUT, 35 url, 36 credentials.toAuthentication(), 37 HttpHelper.integerToETag(sellerVersion), 38 null, 39 new StringConnectionWriter(tripInfo.toJson()), 40 CONTENT_TYPE_APPLICATION_JSON, 41 transport 42 ); 43 } 44 45 public List<TripInfo> list(String sellerId) { 46 StringResponse response = requestString( 47 format("%s/trips", sellerId), 48 HttpMethod.GET, 49 url, 50 credentials.toAuthentication(), 51 null, 52 null, 53 EmptyConnectionWriter.EMPTY_CONNECTION_WRITER, 54 HttpHelper.CONTENT_TYPE_APPLICATION_JSON, 55 transport 56 ); 57 return response == null 58 ? null 59 : (List<TripInfo>) TripInfo.fromJsonArrayToTripInfoes(response.getContent()); 60 } 61 }