View Javadoc
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  }