Skip to content
This repository has been archived by the owner on Apr 10, 2019. It is now read-only.

Commit

Permalink
Merge branch 'master' of https://github.com/nmcb/play-swagger
Browse files Browse the repository at this point in the history
  • Loading branch information
Slava Schmidt committed Jul 9, 2015
2 parents a07fa2a + 5dbc5d3 commit 86ecd6b
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .gitignore
@@ -1,3 +1,3 @@
target
.idea
swagger-tester/logs/
swagger-tester/logs/
Expand Up @@ -16,7 +16,6 @@ object SwaggerCompiler {
Files.write(routesFile.toPath, """GET /example com.example.play.swagger.api.ExampleController.index""".getBytes("utf-8"))
SwaggerCompilationResult(routesFile, Nil)
}

}

/**
Expand Down
@@ -0,0 +1,49 @@
package com.example.play.swagger.compiler

sealed trait Expr

// HTTP

abstract class Verb(name: String) extends Expr
case object GET extends Verb("GET")
case object POST extends Verb("POST")
case object PUT extends Verb("PUT")
case object DELETE extends Verb("DELETE")
case object HEAD extends Verb("HEAD")
case object OPTIONS extends Verb("OPTIONS")
case object TRACE extends Verb("TRACE")

abstract class PathElem(value: String) extends Expr
case object Root extends PathElem(value = "/")
case class Segment(value: String) extends PathElem(value)
case class Path(value: Seq[PathElem]) extends Expr

case class QueryParm(name: String, value: String) extends Expr
case class Query(value: Seq[QueryParm]) extends Expr

// MIME

abstract class MimeType(name: String) extends Expr
case object ApplicationJson extends MimeType(name = "application/json")

// BODY

case class Body(value: String) extends Expr

// DOMAIN

abstract class Type extends Expr
case object Int extends Type
case object Str extends Type

abstract class Entity extends Type
case class Field(name: String, kind: Entity) extends Expr
case class TypeDef(name: String, fields: Seq[Field]) extends Entity

// APPLICATION

abstract class Parm(name: String, value: Type) extends Expr
abstract class Method(name: String, params: Seq[Parm], result: Type) extends Expr
abstract class Handler(name: String, methods: Seq[Method]) extends Expr


0 comments on commit 86ecd6b

Please sign in to comment.