This repository has been archived by the owner on Apr 10, 2019. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of https://github.com/nmcb/play-swagger
- Loading branch information
Showing
3 changed files
with
50 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
target | ||
.idea | ||
swagger-tester/logs/ | ||
swagger-tester/logs/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
49 changes: 49 additions & 0 deletions
49
compiler/src/main/scala/com/example/play/swagger/compiler/ast.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
|
||
|