Skip to content
This repository was archived by the owner on Jun 16, 2020. It is now read-only.

Commit aafc8c1

Browse files
authored
Merge pull request #20 from nsharpe/ISMDS-349
Expose an endpoint by source using PathModifier
2 parents ba9b22b + a8b69ff commit aafc8c1

File tree

10 files changed

+60
-29
lines changed

10 files changed

+60
-29
lines changed

.gitignore

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -103,28 +103,6 @@ gradle-app.setting
103103
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
104104
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
105105

106-
# User-specific stuff:
107-
.idea/workspace.xml
108-
.idea/tasks.xml
109-
.idea/dictionaries
110-
.idea/vcs.xml
111-
.idea/jsLibraryMappings.xml
112-
113-
# Sensitive or high-churn files:
114-
.idea/dataSources.ids
115-
.idea/dataSources.xml
116-
.idea/dataSources.local.xml
117-
.idea/sqlDataSources.xml
118-
.idea/dynamic.xml
119-
.idea/uiDesigner.xml
120-
121-
# Gradle:
122-
.idea/gradle.xml
123-
.idea/libraries
124-
125-
# Mongo Explorer plugin:
126-
.idea/mongoSettings.xml
127-
128106
## File-based project format:
129107
*.iws
130108

@@ -147,3 +125,10 @@ fabric.properties
147125

148126
### Intellij Patch ###
149127
*.iml
128+
129+
### Ignore all intellij project files
130+
.idea/
131+
132+
# Enabling compile time annotations may add this folder in intelij and thus should be ignored
133+
classes/
134+

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ buildscript {
1212
}
1313
}
1414
subprojects {
15+
apply plugin: 'idea'
1516
apply plugin: 'java'
1617
apply plugin: 'nebula.optional-base'
1718
apply plugin: 'nebula.provided-base'

discovery-model/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
VERSION=0.1.1
1+
VERSION=0.1.3
22

33
GROUP_ID=com.ticketmaster.api
44
DESCRIPTION=Ticketmaster Discovery Model - Java

discovery-model/src/main/java/com/ticketmaster/discovery/model/Event.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public class Event extends ResourceSupport {
3838
private String pleaseNote;
3939
private Place place;
4040
private Set<PriceRange> priceRanges;
41+
private Source source;
4142

4243
public List<Venue> getVenues() {
4344
return embedded != null ? embedded.getVenues() : null;

discovery-model/src/main/java/com/ticketmaster/discovery/model/Venue.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ public class Venue extends ResourceSupport {
4949
private Social social;
5050
private Map<String, Extension> extensions = new HashMap<>();
5151
private Set<Relationship> relationships = new HashSet<>();
52+
private List<Image> images;
5253

5354
@ToString(callSuper = true)
5455
@Getter

discovery/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
VERSION=0.1.2
1+
VERSION=0.1.3
22

33
GROUP_ID=com.ticketmaster.api
44
DESCRIPTION=Ticketmaster Discovery API SDK - Java

discovery/src/main/java/com/ticketmaster/api/Version.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
public class Version {
44

5-
public static final String SDK_VERSION = "0.1.2";
5+
public static final String SDK_VERSION = "0.1.3";
66

77
public static final String getUserAgent() {
88
return "Ticketmaster Discovery Java SDK/" + SDK_VERSION;

discovery/src/main/java/com/ticketmaster/api/discovery/DiscoveryApi.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
import java.io.IOException;
2424
import java.util.HashMap;
25+
import java.util.Locale;
2526
import java.util.Map.Entry;
2627
import java.util.concurrent.TimeUnit;
2728

@@ -145,7 +146,8 @@ private Builder baseUrlBuilder() {
145146
return builder;
146147
}
147148

148-
private Builder urlBuilder(String path) {
149+
// Package protected for testing purposess
150+
Builder urlBuilder(String path) {
149151
Builder builder =
150152
baseUrlBuilder().addPathSegment(configuration.getApiPackage())
151153
.addPathSegment(configuration.getApiVersion()).addPathSegment(path);

discovery/src/main/java/com/ticketmaster/api/discovery/DiscoveryApiConfiguration.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import lombok.Getter;
55
import lombok.ToString;
66

7+
import java.util.Locale;
8+
79
import static com.ticketmaster.api.discovery.util.Preconditions.*;
810

911
@Getter
@@ -16,6 +18,11 @@ public class DiscoveryApiConfiguration {
1618

1719
public enum PathModifier {
1820
LEGACY("legacy"),
21+
TICKETMASTER_US("ticketmaster-us"),
22+
TICKETMASTER_UK("ticketmaster-uk"),
23+
UNIVERSE("universe"),
24+
FRONTGATE("frontgate"),
25+
TMR("tmr"),
1926
NONE("");
2027

2128
private String modifier;
@@ -95,7 +102,11 @@ public DiscoveryApiConfigurationBuilder defaultLocale(String locale) {
95102

96103
public DiscoveryApiConfigurationBuilder pathModifier(String newPathModifier) {
97104
checkNotNull(newPathModifier);
98-
pathModifier = PathModifier.fromString(newPathModifier);
105+
return pathModifier( PathModifier.fromString(newPathModifier) );
106+
}
107+
108+
public DiscoveryApiConfigurationBuilder pathModifier(PathModifier newPathModifier) {
109+
pathModifier = newPathModifier == null ? PathModifier.NONE : newPathModifier;
99110
return this;
100111
}
101112

discovery/src/test/java/com/ticketmaster/api/discovery/DiscoveryApiITest.java

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
package com.ticketmaster.api.discovery;
22

33
import java.lang.reflect.Field;
4+
import java.util.Locale;
45
import java.util.Map;
56

6-
import org.assertj.core.api.Assertions;
7+
import okhttp3.HttpUrl;
78
import org.junit.Test;
89
import org.springframework.util.ReflectionUtils;
910
import org.springframework.util.ReflectionUtils.FieldCallback;
@@ -21,6 +22,9 @@
2122
import com.ticketmaster.discovery.model.Venue;
2223
import com.ticketmaster.discovery.model.Venues;
2324

25+
import static org.hamcrest.CoreMatchers.is;
26+
import static org.hamcrest.MatcherAssert.assertThat;
27+
2428

2529
public class DiscoveryApiITest {
2630

@@ -66,9 +70,35 @@ public void whenCallingSearchVenues_ensureAllFieldsAreInTheModel() throws Except
6670
}
6771
}
6872

73+
@Test
74+
public void testPathModifierLocalized() throws Exception {
75+
DiscoveryApiConfiguration configuration = DiscoveryApiConfiguration.builder()
76+
.pathModifier(DiscoveryApiConfiguration.PathModifier.TICKETMASTER_UK)
77+
.build();
78+
79+
DiscoveryApi api = new DiscoveryApi("aKey",configuration);
80+
81+
HttpUrl url = api.urlBuilder("event").build();
82+
83+
assertThat(url.encodedPath(),is("/discovery/v2/event/ticketmaster-uk"));
84+
}
85+
86+
@Test
87+
public void testPathModifierNotLocalized() throws Exception {
88+
DiscoveryApiConfiguration configuration = DiscoveryApiConfiguration.builder()
89+
.pathModifier(DiscoveryApiConfiguration.PathModifier.NONE)
90+
.build();
91+
92+
DiscoveryApi api = new DiscoveryApi("aKey",configuration);
93+
94+
HttpUrl url = api.urlBuilder("event").build();
95+
96+
assertThat(url.encodedPath(),is("/discovery/v2/event"));
97+
}
98+
6999
private void validateEmptyOtherProperties(final Object object) {
70100
if (object != null && BaseModel.class.isAssignableFrom(object.getClass())) {
71-
Assertions.assertThat(getOtherProperties(object)).isEmpty();
101+
assertThat(getOtherProperties(object).isEmpty(),is(true));
72102
recursiveValidate(object);
73103
}
74104
return;

0 commit comments

Comments
 (0)