From e14ba467d80cf6d31edc6269fd157fa061e4e081 Mon Sep 17 00:00:00 2001 From: Simon Redfern Date: Thu, 3 Aug 2017 16:03:00 +0200 Subject: [PATCH] Send branch to createOrUpdateBranch and update example for Resource Doc / Swagger --- .../code/api/ResourceDocs1_4_0/SwaggerDefinitionsJSON.scala | 4 ++-- .../code/api/ResourceDocs1_4_0/SwaggerJSONFactory.scala | 5 ++++- src/main/scala/code/api/v3_0_0/APIMethods300.scala | 6 ++++-- src/main/scala/code/api/v3_0_0/JSONFactory3.0.0.scala | 3 +-- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerDefinitionsJSON.scala b/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerDefinitionsJSON.scala index 4d6a77465..471e4b4b9 100644 --- a/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerDefinitionsJSON.scala +++ b/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerDefinitionsJSON.scala @@ -929,8 +929,8 @@ object SwaggerDefinitionsJSON { address = address, location = location, meta = meta, - lobbyString = null, - driveUpString = null, + lobbyString = None, + driveUpString = None, lobby = Full(lobby), driveUp = Full(driveUp), branchRouting = branchRouting, diff --git a/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerJSONFactory.scala b/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerJSONFactory.scala index e7d6b31c4..1a361167f 100644 --- a/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerJSONFactory.scala +++ b/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerJSONFactory.scala @@ -422,7 +422,10 @@ object SwaggerJSONFactory { // name -> Tesobe, --> "name" : {"type":"string"} // bank -> Bank(gh.29.uk), --> "bank": {"$ref":"#/definitions/Bank"} // banks -> List(Bank(gh.29.uk) --> "banks": {"type": "array", "items":{"$ref": "#/definitions/Bank"}} - val properties = for ((key, value) <- mapOfFields) yield { + val properties = for { + (key, value) <- mapOfFields + _ = print("\n val properties for comprehension: " + key + " is " + value) + } yield { value match { case i: Boolean => "\"" + key + """": {"type":"boolean", "example":"""" +i+"\"}" case Some(i: Boolean) => "\"" + key + """": {"type":"boolean", "example":"""" +i+"\"}" diff --git a/src/main/scala/code/api/v3_0_0/APIMethods300.scala b/src/main/scala/code/api/v3_0_0/APIMethods300.scala index ac41ebd80..68e44efde 100644 --- a/src/main/scala/code/api/v3_0_0/APIMethods300.scala +++ b/src/main/scala/code/api/v3_0_0/APIMethods300.scala @@ -719,11 +719,13 @@ trait APIMethods300 { || hasEntitlement("", u.userId, CanCreateBranchAtAnyBank) , createBranchEntitlementsRequiredText) - branchJsonV300 <- tryo {json.extract[Branch]} ?~! ErrorMessages.InvalidJsonFormat - success <- Connector.connector.vend.createOrUpdateBranch(branchJsonV300) + branchJsonV300 <- tryo {json.extract[BranchJsonV300]} ?~! ErrorMessages.InvalidJsonFormat + branch <- transformToBranchFromV300(branchJsonV300) + success <- Connector.connector.vend.createOrUpdateBranch(branch) } yield { val json = branchJsonV300 // JSONFactory300.createBranchJson(success) createdJsonResponse(Extraction.decompose(json)) + // TODO remove the shortcut i.e. we should do the conversion back from branch to json rather than just echo the input } } } diff --git a/src/main/scala/code/api/v3_0_0/JSONFactory3.0.0.scala b/src/main/scala/code/api/v3_0_0/JSONFactory3.0.0.scala index c0defef78..2be149d43 100644 --- a/src/main/scala/code/api/v3_0_0/JSONFactory3.0.0.scala +++ b/src/main/scala/code/api/v3_0_0/JSONFactory3.0.0.scala @@ -678,8 +678,7 @@ object JSONFactory300{ // This goes FROM JSON TO internal representation of a Branch - // This can be overloaded, and each function can accept a different input type - def transformToBranch(branchJsonV300: BranchJsonV300): Box[Branch] = { + def transformToBranchFromV300(branchJsonV300: BranchJsonV300): Box[Branch] = { val address : Address = transformToAddressFromV300(branchJsonV300.address) // Note the address in V220 is V140