Skip to content

Commit

Permalink
finish removing the identity workaround, remove default null in neste…
Browse files Browse the repository at this point in the history
…d case classes, OAuthToken remains to go
  • Loading branch information
sclasen committed Nov 7, 2013
1 parent 38b1064 commit 7ee64ba
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 22 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -2,3 +2,4 @@ target
.idea
.idea_modules
.env
src_managed
Expand Up @@ -13,8 +13,8 @@ abstract class AppTransferSpec(aj: ApiRequestJson with ApiResponseJson) extends
"operate on AppTransfers" in {
val app = getApp
import AppTransfer._
create(Collaborator.Create(app.id, user = CollaboratorUser(testCollaborator)))
val transfer = create(Create(AppTransferApp(id = app.id), AppTransferRecipient(email = testCollaborator)))
create(Collaborator.Create(app.id, user_email_or_id = testCollaborator))
val transfer = create(Create(app.id, recipient_email_or_id = testCollaborator))
val transferList = listAll(List())
transferList.contains(transfer) must be(true)
val transferInfo = info(Info(transfer.id))
Expand Down
@@ -1,7 +1,5 @@
package com.heroku.platform.api

import com.heroku.platform.api.Collaborator.models.CollaboratorUser

abstract class CollaboratorSpec(aj: ApiRequestJson with ApiResponseJson) extends ApiSpec(aj) {

val implicits: CollaboratorRequestJson with CollaboratorResponseJson = aj
Expand All @@ -11,7 +9,7 @@ abstract class CollaboratorSpec(aj: ApiRequestJson with ApiResponseJson) extends
"Api for Collaborator" must {
"operate on Collaborators" in {
val app = getApp
val collabAdd = create(Collaborator.Create(app.id, user = CollaboratorUser(testCollaborator)))
val collabAdd = create(Collaborator.Create(app.id, user_email_or_id = testCollaborator))
val collabList = listPage(Collaborator.List(app.id))
collabList.isComplete must be(true)
collabList.list.isEmpty must be(false)
Expand Down
Expand Up @@ -75,18 +75,18 @@ object ModelBoilerplateGen extends App {
case Right(Left(nestedDef)) => nestedDef.properties.flatMap {
case (nk, nref) =>
resource.resolveFieldRef(nref).fold({
oneOf => argsFromOneOf(k, oneOf, schema.isRequired(k))
oneOf => argsFromAnyOf(k, oneOf, schema.isRequired(k))
}, {
fieldDef => argsFromFieldDef(k, fieldDef, schema.isRequired(k))
})
}
case Left(Right(ref)) =>
resource.resolveFieldRef(ref).fold({
oneOf => argsFromOneOf(k, oneOf, schema.isRequired(k))
oneOf => argsFromAnyOf(k, oneOf, schema.isRequired(k))
}, {
fieldDef => argsFromFieldDef(k, fieldDef, schema.isRequired(k))
})
case Left(Left(oneOf)) => argsFromOneOf(k, oneOf, schema.isRequired(k))
case Left(Left(oneOf)) => argsFromAnyOf(k, oneOf, schema.isRequired(k))
}

}
Expand Down Expand Up @@ -121,16 +121,20 @@ object ModelBoilerplateGen extends App {
}

def argsFromFieldDef(k: String, fieldDef: FieldDefinition, required: Boolean)(implicit resource: Resource, root: RootSchema): Seq[(String, ValDef)] = {
Seq(if (required || (k == "grant" && resource.id == "schema/oauth-token")) (k -> (PARAM(k, requiredArg(k, fieldDef))))
Seq(if (required) (k -> (PARAM(k, requiredArg(k, fieldDef))))
else (k -> (PARAM(k, argType(k, fieldDef)) := NONE)))
}

def argsFromOneOf(k: String, oo: AnyOf, required: Boolean)(implicit resource: Resource, root: RootSchema): Seq[(String, ValDef)] = {
Seq(if (required) (k -> (PARAM(k, requiredArg(k, hollowFieldDef(List(resource.name + initialCap(k)))))))
else (k -> (PARAM(k, argType(k, hollowFieldDef(List(resource.name + initialCap(k))))) := NONE)))
def argsFromAnyOf(k: String, oo: AnyOf, required: Boolean)(implicit resource: Resource, root: RootSchema): Seq[(String, ValDef)] = {
val field = s"${k}_${oo.orFields}"
Seq(if (required) (field -> (PARAM(field, TYPE_REF("String"))))
else (field -> (PARAM(field, TYPE_OPTION("String")) := NONE)))
}

def hollowFieldDef(typez: List[String]): FieldDefinition = FieldDefinition(None, None, None, None, typez, None)
def bodyArgsFromAnyOf(k: String, oo: AnyOf, required: Boolean)(implicit resource: Resource, root: RootSchema): Seq[(String, ValDef)] = {
Seq(if (required) (k -> (PARAM(k, TYPE_REF("String"))))
else (k -> (PARAM(k, TYPE_OPTION("String")) := NONE)))
}

/*
extra params for requests. range for list reqs
Expand Down Expand Up @@ -158,7 +162,7 @@ object ModelBoilerplateGen extends App {
})
//Hack, fix later.
if (typ.toString() == "Int") (PARAM(name, typ): ValDef)
else ((PARAM(name, typ) := NULL))
else ((PARAM(name, typ): ValDef))
}
((CASECLASSDEF(resource.name + Resource.camelify(initialCap(k))) withParams params): Tree)
}
Expand All @@ -178,18 +182,18 @@ object ModelBoilerplateGen extends App {
case Right(Left(nestedDef)) => nestedDef.properties.flatMap {
case (nk, nref) =>
resource.resolveFieldRef(nref).fold({
oneOf => argsFromOneOf(k, oneOf, schema.isRequired(k))
oneOf => argsFromAnyOf(k, oneOf, schema.isRequired(k))
}, {
fieldDef => argsFromFieldDef(k, fieldDef, schema.isRequired(k))
})
}
case Left(Right(ref)) =>
resource.resolveFieldRef(ref).fold({
oneOf => argsFromOneOf(k, oneOf, schema.isRequired(k))
oneOf => bodyArgsFromAnyOf(k, oneOf, schema.isRequired(k))
}, {
fieldDef => argsFromFieldDef(k, fieldDef, schema.isRequired(k))
})
case Left(Left(oneOf)) => argsFromOneOf(k, oneOf, schema.isRequired(k))
case Left(Left(oneOf)) => argsFromAnyOf(k, oneOf, schema.isRequired(k))
}

}
Expand Down Expand Up @@ -336,7 +340,7 @@ object ModelBoilerplateGen extends App {
(resource.id, field) match {
case ("schema/dyno", "env") => Some((TYPE_OPTION(TYPE_MAP("String", "String"))))
case ("schema/oauth-token", "client") => Some((TYPE_OPTION("OAuthTokenClient")))
case ("schema/oauth-token", "grant") => Some((TYPE_REF("OAuthTokenGrant")))
case ("schema/oauth-token", "grant") => Some((TYPE_OPTION("OAuthTokenGrant")))
case ("schema/oauth-token", "refresh_token") => Some((TYPE_OPTION("OAuthTokenRefreshToken")))
case ("schema/app", "stack") => Some((TYPE_OPTION("String")))
case _ => None
Expand Down Expand Up @@ -539,10 +543,7 @@ object ModelBoilerplateGen extends App {

val transformConfigVars = (__ \ "definitions" \ "config-var").json.prune

def loadRoot = Json.parse(fileToString("api/src/main/resources/schema.json")).transform(transformConfigVars).map { js =>
e(Json.prettyPrint(js))
js
}.get.as[RootSchema]
def loadRoot = Json.parse(fileToString("api/src/main/resources/schema.json")).transform(transformConfigVars).get.as[RootSchema]

def writeFile(dir: File, fileName: String, tree: String) = {
val resFile = new File(dir, fileName)
Expand Down

0 comments on commit 7ee64ba

Please sign in to comment.