Skip to content

Commit

Permalink
Add TefpsSubscriberClient (#4)
Browse files Browse the repository at this point in the history
  • Loading branch information
odairay authored Jan 9, 2018
1 parent c14f342 commit 972ddcb
Show file tree
Hide file tree
Showing 4 changed files with 158 additions and 4 deletions.
30 changes: 28 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
## Available clients

- Java7 TefpsTvClient
- Java7 TefpsSubscriberClient

### Java7 TefpsTvClient - Installation
### Java7 All clients - Installation

Add maven dependency to your pom.xml

Expand All @@ -25,13 +26,38 @@ import fr.polyconseil.smartcity.tefpsclients.auth.OAuth2HttpClient;
import fr.polyconseil.smartcity.tefpsclient.dto.tv.ParkingRightDTO;

//...

// Instantiate client
TefpsTvClient client = new TefpsTvClient(new OAuth2HttpClient(
"http://tefps-directory-host:port",
"clientId",
"clientSecret"),
"http://tefps-tv-host:port"
);

// Fetch Parking Right Sample
ParkingRightDTO parkingRight = client.fetchTv("cityId", "tvId");

// Delete Parking Right Sample
ParkingRightDTO parkingRight = client.deleteTv("cityId", "tvId");
```


### Java7 TefpsSubscriberClient - Usage

```java
import fr.polyconseil.smartcity.tefpsclient.subscriber.TefpsSubscriberClient;
import fr.polyconseil.smartcity.tefpsclients.auth.OAuth2HttpClient;
import fr.polyconseil.smartcity.tefpsclient.dto.subscriber.LightSubscriberDTO;

//...
// Instantiate client
TefpsSubscriberClient client = new TefpsSubscriberClient(new OAuth2HttpClient(
"http://tefps-directory-host:port",
"clientId",
"clientSecret"),
"http://tefps-subscription-host:port"
);

// Fetch Subscriber Sample
LightSubscriberDTO subscriber = client.fetchSubscriber("cityId", "subscriberId");
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package fr.polyconseil.smartcity.tefpsclients.dto.subscriber;

import java.util.Date;
import java.util.List;

public class LightSubscriberDTO {
private String subscriberId;

private String plate;

private String subscriptionPlanId;

private Date startOfValidityDatetime;

private Date endOfValidityDatetime;

private List<String> validityAreas;

public String getSubscriberId() {
return subscriberId;
}

public void setSubscriberId(String subscriberId) {
this.subscriberId = subscriberId;
}

public String getPlate() {
return plate;
}

public void setPlate(String plate) {
this.plate = plate;
}

public String getSubscriptionPlanId() {
return subscriptionPlanId;
}

public void setSubscriptionPlanId(String subscriptionPlanId) {
this.subscriptionPlanId = subscriptionPlanId;
}

public Date getStartOfValidityDatetime() {
return startOfValidityDatetime;
}

public void setStartOfValidityDatetime(Date startOfValidityDatetime) {
this.startOfValidityDatetime = startOfValidityDatetime;
}

public Date getEndOfValidityDatetime() {
return endOfValidityDatetime;
}

public void setEndOfValidityDatetime(Date endOfValidityDatetime) {
this.endOfValidityDatetime = endOfValidityDatetime;
}

public List<String> getValidityAreas() {
return validityAreas;
}

public void setValidityAreas(List<String> validityAreas) {
this.validityAreas = validityAreas;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package fr.polyconseil.smartcity.tefpsclients.subscriber;

import fr.polyconseil.smartcity.tefpsclients.auth.OAuth2HttpClient;
import fr.polyconseil.smartcity.tefpsclients.dto.subscriber.LightSubscriberDTO;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Date;
import java.util.List;

public class TefpsSubscriberClient {

private static final String SUBSCRIBER_API = "/api/cities/{cityId}/subscribers/{id}";
private String subscriberUrl;
private OAuth2HttpClient oAuth2Client;

public TefpsSubscriberClient(OAuth2HttpClient oAuth2Client, String subscriberUrl) {
this.oAuth2Client = oAuth2Client;
this.subscriberUrl = subscriberUrl;
}

public void createOrUpdateSubscriber(
String cityId,
String subscriberId,
String plate,
String subscriptionPlanId,
Date startOfValidityDatetime,
Date endOfValidityDatetime,
List<String> validityAreas
) throws IOException, URISyntaxException {

LightSubscriberDTO dto = new LightSubscriberDTO();
dto.setSubscriberId(subscriberId);
dto.setPlate(plate);
dto.setSubscriptionPlanId(subscriptionPlanId);
dto.setStartOfValidityDatetime(startOfValidityDatetime);
dto.setEndOfValidityDatetime(endOfValidityDatetime);
dto.setValidityAreas(validityAreas);

oAuth2Client.put(
buildURI(cityId, subscriberId),
dto,
null
);
}

public LightSubscriberDTO fetchSubscriber(String cityId, String subscriberId) throws IOException, URISyntaxException {
return oAuth2Client.get(
buildURI(cityId, subscriberId),
LightSubscriberDTO.class
);
}

public void deleteSubscriber(String cityId, String subscriberId) throws IOException, URISyntaxException {
oAuth2Client.delete(buildURI(cityId, subscriberId));
}

private URI buildURI(String cityId, String subscriberId) throws URISyntaxException {
return OAuth2HttpClient.buildURI(subscriberUrl, SUBSCRIBER_API, cityId, subscriberId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ public ParkingRightDTO patchTv(
@Nullable Integer price,
@Nullable Map<String, Object> pricingContext
) throws IOException, URISyntaxException {
List<PatchObject> patchList = new ArrayList<PatchObject>();
List<PatchObject> patchList = new ArrayList<>();

if (endDatetime != null) {
PatchObject patch = new PatchObject();
Expand Down Expand Up @@ -124,7 +124,7 @@ public void deleteTv(String cityId, String tvId) throws IOException, URISyntaxEx
oAuth2Client.delete(buildURI(cityId, tvId));
}

private URI buildURI(String cityId, String tvId) throws IOException, URISyntaxException {
private URI buildURI(String cityId, String tvId) throws URISyntaxException {
return OAuth2HttpClient.buildURI(tvUrl, TV_API, cityId, tvId);
}
}

0 comments on commit 972ddcb

Please sign in to comment.