File tree Expand file tree Collapse file tree 4 files changed +59
-2
lines changed
src/com/rallydev/rest/request
test/com/rallydev/rest/request Expand file tree Collapse file tree 4 files changed +59
-2
lines changed Original file line number Diff line number Diff line change @@ -19,7 +19,9 @@ public class GetRequest extends Request {
1919
2020 /**
2121 * Create a new get request for the specified object.
22+ *
2223 * @param ref the ref of the WSAPI object to be retrieved. May be absolute or relative, e.g. "/defect/12345"
24+ * May also be "/user" or "/subscription" to get the current instances
2325 */
2426 public GetRequest (String ref ) {
2527 this .ref = ref ;
@@ -54,7 +56,20 @@ public void setFetch(Fetch fetch) {
5456 public String toUrl () {
5557 List <NameValuePair > params = new ArrayList <NameValuePair >(getParams ());
5658 params .add (new BasicNameValuePair ("fetch" , fetch .toString ()));
57- return String .format ("%s.js?%s" , Ref . getRelativeRef ( ref ),
59+ return String .format ("%s.js?%s" , getEndpoint ( ),
5860 URLEncodedUtils .format (params , "utf-8" ));
5961 }
62+
63+ protected String getEndpoint () {
64+ String endpoint = ref .toLowerCase ();
65+ if (Ref .isRef (endpoint )) {
66+ endpoint = Ref .getRelativeRef (endpoint );
67+ } else if (endpoint .contains ("user" )) {
68+ endpoint = "/user" ;
69+ } else if (endpoint .contains ("subscription" )) {
70+ endpoint = "/subscription" ;
71+ }
72+
73+ return endpoint ;
74+ }
6075}
Original file line number Diff line number Diff line change @@ -275,7 +275,15 @@ public String toUrl() {
275275 params .add (new BasicNameValuePair ("query" , getQueryFilter ().toString ()));
276276 }
277277
278- return "/" + type . toLowerCase (). replaceAll ( " " , "" ) + ".js ?" +
278+ return getTypeEndpoint () + "?" +
279279 URLEncodedUtils .format (params , "utf-8" );
280280 }
281+
282+ protected String getTypeEndpoint () {
283+ String typeEndpoint = type .toLowerCase ().replaceAll (" " , "" );
284+ if (typeEndpoint .equals ("subscription" ) || typeEndpoint .equals ("user" )) {
285+ typeEndpoint += "s" ;
286+ }
287+ return "/" + typeEndpoint + ".js" ;
288+ }
281289}
Original file line number Diff line number Diff line change @@ -24,4 +24,22 @@ public void shouldReturnCorrectUrlWithFetchParams() {
2424 req .setFetch (new Fetch ("Name" , "Description" ));
2525 Assert .assertEquals (req .toUrl (), "/defect/1234.js?fetch=Name%2CDescription" );
2626 }
27+
28+ @ Test
29+ public void shouldReturnCorrectUrlForUser () {
30+ Assert .assertEquals (new GetRequest ("User" ).toUrl (), "/user.js?fetch=true" );
31+ Assert .assertEquals (new GetRequest ("user" ).toUrl (), "/user.js?fetch=true" );
32+ Assert .assertEquals (new GetRequest ("/user" ).toUrl (), "/user.js?fetch=true" );
33+ Assert .assertEquals (new GetRequest ("/user.js" ).toUrl (), "/user.js?fetch=true" );
34+ Assert .assertEquals (new GetRequest ("/user/12345.js" ).toUrl (), "/user/12345.js?fetch=true" );
35+ }
36+
37+ @ Test
38+ public void shouldReturnCorrectUrlForSubscription () {
39+ Assert .assertEquals (new GetRequest ("Subscription" ).toUrl (), "/subscription.js?fetch=true" );
40+ Assert .assertEquals (new GetRequest ("subscription" ).toUrl (), "/subscription.js?fetch=true" );
41+ Assert .assertEquals (new GetRequest ("/subscription" ).toUrl (), "/subscription.js?fetch=true" );
42+ Assert .assertEquals (new GetRequest ("/subscription.js" ).toUrl (), "/subscription.js?fetch=true" );
43+ Assert .assertEquals (new GetRequest ("/subscription/12345.js" ).toUrl (), "/subscription/12345.js?fetch=true" );
44+ }
2745}
Original file line number Diff line number Diff line change @@ -127,4 +127,20 @@ public void shouldCloneCorrectly() {
127127 Assert .assertEquals (q .toUrl (), q2 .toUrl ());
128128
129129 }
130+
131+ @ Test
132+ public void shouldCreateCorrectUrlForSubscription () {
133+
134+ QueryRequest q = new QueryRequest ("Subscription" );
135+
136+ Assert .assertEquals (q .toUrl (), "/subscriptions.js?start=1&pagesize=200&fetch=true&order=ObjectID" );
137+ }
138+
139+ @ Test
140+ public void shouldCreateCorrectUrlForUser () {
141+
142+ QueryRequest q = new QueryRequest ("User" );
143+
144+ Assert .assertEquals (q .toUrl (), "/users.js?start=1&pagesize=200&fetch=true&order=ObjectID" );
145+ }
130146}
You can’t perform that action at this time.
0 commit comments