4646import com .trimble .tekla .teamcity .TeamcityConfiguration ;
4747import com .trimble .tekla .teamcity .TeamcityConnector ;
4848import java .util .Arrays ;
49+ import java .util .Optional ;
4950
5051/**
5152 * REST configuration
@@ -165,21 +166,21 @@ public String triggerBuild(
165166 @ QueryParam ("branch" ) final String branch ,
166167 @ QueryParam ("prid" ) final String prid ) throws IOException {
167168
168- final Settings settings = this .settingsService .getSettings (repository ). get ( );
169+ final Optional < Settings > settings = this .settingsService .getSettings (repository );
169170
170171 if (settings == null ) {
171172 return "{\" status\" : \" error\" , \" message\" : \" hook not configured\" }" ;
172173 }
173174
174- final String url = settings .getString ("teamCityUrl" , "" );
175- final String username = settings .getString ("teamCityUserName" , "" );
175+ final String url = settings .get (). getString ("teamCityUrl" , "" );
176+ final String username = settings .get (). getString ("teamCityUserName" , "" );
176177 final String password = this .connectionSettings .getPassword (repository );
177178
178179 if (url .isEmpty ()) {
179180 return "{\" status\" : \" error\" , \" message\" : \" invalid id\" }" ;
180181 }
181182
182- final String repositoryTriggersJson = settings .getString (Field .REPOSITORY_TRIGGERS_JSON , StringUtils .EMPTY );
183+ final String repositoryTriggersJson = settings .get (). getString (Field .REPOSITORY_TRIGGERS_JSON , StringUtils .EMPTY );
183184 if (repositoryTriggersJson .isEmpty ()) {
184185 return "{\" status\" : \" error\" , \" message\" : \" hook not configured properly\" }" ;
185186 }
@@ -203,7 +204,7 @@ public String triggerBuild(
203204 .append (" " )
204205 .append (buildConfig .getBranchConfig ());
205206 builder .append (" " )
206- .append (this .connector .QueueBuild (conf , buildConfig .getBranchConfig (), buildconfig , "Manual Trigger from Bitbucket: Pull Request: " + prid , false , settings )); // handle error todo
207+ .append (this .connector .QueueBuild (conf , buildConfig .getBranchConfig (), buildconfig , "Manual Trigger from Bitbucket: Pull Request: " + prid , false , settings . get () )); // handle error todo
207208 } else {
208209 builder .append (" trigger skipped " )
209210 .append (buildconfig )
@@ -225,18 +226,13 @@ public String getBuildsConfiguration(
225226 @ QueryParam ("branch" ) final String branch ,
226227 @ QueryParam ("hash" ) final String hash ) throws IOException {
227228
228- final Settings settings = this .settingsService .getSettings (repository ).get ();
229-
230- if (settings == null ) {
229+ final Optional <Settings > settings = this .settingsService .getSettings (repository );
230+ if (!settings .isPresent ()) {
231231 return "{\" status\" : \" error\" , \" message\" : \" hook not configured\" }" ;
232232 }
233233
234- if (settings == null ) {
235- return "{\" status\" : \" error\" , \" message\" : \" hook not configured\" }" ;
236- }
237-
238- final String url = settings .getString ("teamCityUrl" , "" );
239- final String username = settings .getString ("teamCityUserName" , "" );
234+ final String url = settings .get ().getString ("teamCityUrl" , "" );
235+ final String username = settings .get ().getString ("teamCityUserName" , "" );
240236 final String password = this .connectionSettings .getPassword (repository );
241237
242238 if (password .isEmpty ()) {
@@ -247,7 +243,7 @@ public String getBuildsConfiguration(
247243 return "{\" status\" : \" error\" , \" message\" : \" invalid id\" }" ;
248244 }
249245
250- final String repositoryTriggersJson = settings .getString (Field .REPOSITORY_TRIGGERS_JSON , StringUtils .EMPTY );
246+ final String repositoryTriggersJson = settings .get (). getString (Field .REPOSITORY_TRIGGERS_JSON , StringUtils .EMPTY );
251247 if (repositoryTriggersJson .isEmpty ()) {
252248 return "{\" status\" : \" error\" , \" message\" : \" hook not configured properly\" }" ;
253249 }
@@ -268,8 +264,8 @@ public String getBuildsConfiguration(
268264 continue ;
269265 }
270266 try {
271- final String returnData = this .connector .GetBuildsForBranch (conf , buildConfig .getBranchConfig (), buildConfig .getTarget (), settings );
272- final String queueData = this .connector .GetQueueDataForConfiguration (conf , buildConfig .getTarget (), settings );
267+ final String returnData = this .connector .GetBuildsForBranch (conf , buildConfig .getBranchConfig (), buildConfig .getTarget (), settings . get () );
268+ final String queueData = this .connector .GetQueueDataForConfiguration (conf , buildConfig .getTarget (), settings . get () );
273269 jObj .put (buildConfig .getTarget (), returnData );
274270 jObj .put (buildConfig .getTarget () + "_queue" , queueData );
275271 jObj .put (buildConfig .getTarget () + "_wref" , url + "/viewType.html?buildTypeId=" + buildConfig );
@@ -294,18 +290,15 @@ public String getExternalConfiguration(
294290 @ QueryParam ("branch" ) final String branch ,
295291 @ QueryParam ("hash" ) final String hash ) {
296292
297- final Settings settings = this .settingsService .getSettings (repository ).get ();
298-
299- if (settings == null ) {
300- return "{\" status\" : \" error\" , \" message\" : \" hook not configured\" }" ;
301- }
293+
294+ final Optional <Settings > settings = this .settingsService .getSettings (repository );
302295
303- if (settings == null ) {
296+ if (! settings . isPresent () ) {
304297 return "{\" status\" : \" error\" , \" message\" : \" hook not configured\" }" ;
305298 }
306299
307- final String url = settings .getString ("teamCityUrl" , "" );
308- final String username = settings .getString ("teamCityUserName" , "" );
300+ final String url = settings .get (). getString ("teamCityUrl" , "" );
301+ final String username = settings .get (). getString ("teamCityUserName" , "" );
309302 final String password = this .connectionSettings .getPassword (repository );
310303
311304 if (url .isEmpty ()) {
@@ -318,7 +311,7 @@ public String getExternalConfiguration(
318311
319312 final TeamcityConfiguration conf = new TeamcityConfiguration (url , username , password );
320313 try {
321- final String repositoryTriggersJson = settings .getString (Field .REPOSITORY_TRIGGERS_JSON , StringUtils .EMPTY );
314+ final String repositoryTriggersJson = settings .get (). getString (Field .REPOSITORY_TRIGGERS_JSON , StringUtils .EMPTY );
322315 if (repositoryTriggersJson .isEmpty ()) {
323316 return "{\" status\" : \" error\" , \" message\" : \" hook not configured properly\" }" ;
324317 }
@@ -331,16 +324,16 @@ public String getExternalConfiguration(
331324 for (final Trigger buildConfig : configurations ) {
332325 if ("build" .equals (buildConfig .getDownStreamTriggerType ()) && !"" .equals (buildConfig .getDownStreamTriggerTarget ())) {
333326 final String depBuildId = buildConfig .getTarget ();
334- final String returnData = this .connector .GetBuildsForBranch (conf , buildConfig .getBranchConfig (), depBuildId , settings );
335- final String queueData = this .connector .GetQueueDataForConfiguration (conf , depBuildId , settings );
327+ final String returnData = this .connector .GetBuildsForBranch (conf , buildConfig .getBranchConfig (), depBuildId , settings . get () );
328+ final String queueData = this .connector .GetQueueDataForConfiguration (conf , depBuildId , settings . get () );
336329 jObj .put (depBuildId + "_dep_wref" , url + "/viewType.html?buildTypeId=" + depBuildId );
337330 jObj .put (depBuildId + "_dep" , returnData );
338331 jObj .put (depBuildId + "_dep_queue" , queueData );
339332
340333 final String [] downBuildIds = buildConfig .getDownStreamTriggerTarget ().split ("," );
341334 for (String downBuildId : downBuildIds ) {
342- final String returnDataBuildDep = this .connector .GetBuildsForBranch (conf , buildConfig .getBranchConfig (), downBuildId , settings );
343- final String queueDataBuildDep = this .connector .GetQueueDataForConfiguration (conf , downBuildId , settings );
335+ final String returnDataBuildDep = this .connector .GetBuildsForBranch (conf , buildConfig .getBranchConfig (), downBuildId , settings . get () );
336+ final String queueDataBuildDep = this .connector .GetQueueDataForConfiguration (conf , downBuildId , settings . get () );
344337 jObj .put (downBuildId + "_build" , returnDataBuildDep );
345338 jObj .put (downBuildId + "_build_branch" , buildConfig .getBranchConfig ());
346339 jObj .put (downBuildId + "_build_wref" , url + "/viewType.html?buildTypeId=" + downBuildId );
@@ -359,8 +352,8 @@ public String getExternalConfiguration(
359352 "tab" .equals (buildConfig .getDownStreamTriggerType ()) && !"" .equals (buildConfig .getDownStreamTriggerTarget ())) {
360353 final String depBuildId = buildConfig .getTarget ();
361354
362- final String returnData = this .connector .GetBuildsForBranch (conf , buildConfig .getBranchConfig (), depBuildId , settings );
363- final String queueData = this .connector .GetQueueDataForConfiguration (conf , depBuildId , settings );
355+ final String returnData = this .connector .GetBuildsForBranch (conf , buildConfig .getBranchConfig (), depBuildId , settings . get () );
356+ final String queueData = this .connector .GetQueueDataForConfiguration (conf , depBuildId , settings . get () );
364357 jObj .put (depBuildId + "_dep" , returnData );
365358 jObj .put (depBuildId + "_dep_wref" , url + "/viewType.html?buildTypeId=" + depBuildId );
366359 jObj .put (depBuildId + "_dep_queue" , queueData );
@@ -408,7 +401,13 @@ public String triggerexternalurl(@Context final Repository repository, @QueryPar
408401 final HttpConnector dummyConnector = new HttpConnector ();
409402 String returnData ;
410403 try {
411- returnData = dummyConnector .Get (url , this .settingsService .getSettings (repository ).get ());
404+ final Optional <Settings > settings = this .settingsService .getSettings (repository );
405+
406+ if (!settings .isPresent ()) {
407+ return "{\" status\" : \" error\" , \" message\" : \" hook not configured\" }" ;
408+ }
409+
410+ returnData = dummyConnector .Get (url , settings .get ());
412411 return "{\" status\" : \" ok\" , \" message\" : \" " + returnData + "\" }" ;
413412 } catch (final IOException ex ) {
414413 return "{\" status\" : \" failed\" , \" message\" : \" " + ex .getMessage () + "\" }" ;
@@ -467,14 +466,14 @@ public Response testconnection(
467466 @ Path (value = "build" )
468467 public String getbuild (@ Context final Repository repository , @ QueryParam ("id" ) final String id ) {
469468
470- final Settings settings = this .settingsService .getSettings (repository ). get ( );
469+ final Optional < Settings > settings = this .settingsService .getSettings (repository );
471470
472- if (settings == null ) {
471+ if (! settings . isPresent () ) {
473472 return "{\" status\" : \" error\" , \" message\" : \" hook not configured\" }" ;
474473 }
475474
476- final String url = settings .getString ("teamCityUrl" , "" );
477- final String username = settings .getString ("teamCityUserName" , "" );
475+ final String url = settings .get (). getString ("teamCityUrl" , "" );
476+ final String username = settings .get (). getString ("teamCityUserName" , "" );
478477 final String password = this .connectionSettings .getPassword (repository );
479478
480479 if (url .isEmpty ()) {
@@ -486,8 +485,8 @@ public String getbuild(@Context final Repository repository, @QueryParam("id") f
486485 }
487486
488487 final TeamcityConfiguration conf = new TeamcityConfiguration (url , username , password );
489- try {
490- return this .connector .GetBuild (conf , id , this . settingsService . getSettings ( repository ) .get ());
488+ try {
489+ return this .connector .GetBuild (conf , id , settings .get ());
491490 } catch (final IOException ex ) {
492491 return "{\" status\" : \" error\" , \" message\" : \" " + ex .getMessage () + "\" }" ;
493492 }
0 commit comments