forked from loafle/openapi-generator-original
51 lines
2.2 KiB
Plaintext
51 lines
2.2 KiB
Plaintext
package {{invokerPackage}}
|
|
|
|
sealed trait ResponseState
|
|
object ResponseState {
|
|
case object Success extends ResponseState
|
|
case object Error extends ResponseState
|
|
}
|
|
|
|
case class ApiRequest[U](
|
|
// required fields
|
|
method: ApiMethod,
|
|
basePath: String,
|
|
operationPath: String,
|
|
contentType: String,
|
|
|
|
// optional fields
|
|
responses: Map[Int, (Manifest[_], ResponseState)] = Map.empty,
|
|
bodyParam: Option[Any] = None,
|
|
formParams: Map[String, Any] = Map.empty,
|
|
pathParams: Map[String, Any] = Map.empty,
|
|
queryParams: Map[String, Any] = Map.empty,
|
|
headerParams: Map[String, Any] = Map.empty,
|
|
credentials: Seq[Credentials] = List.empty) {
|
|
|
|
def withCredentials(cred: Credentials) = copy[U](credentials = credentials :+ cred)
|
|
|
|
def withApiKey(key: ApiKeyValue, keyName: String, location: ApiKeyLocation) = withCredentials(ApiKeyCredentials(key, keyName, location))
|
|
|
|
def withSuccessResponse[T](code: Int)(implicit m: Manifest[T]) = copy[U](responses = responses + (code -> (m, ResponseState.Success)))
|
|
|
|
def withErrorResponse[T](code: Int)(implicit m: Manifest[T]) = copy[U](responses = responses + (code -> (m, ResponseState.Error)))
|
|
|
|
def withDefaultSuccessResponse[T](implicit m: Manifest[T]) = withSuccessResponse[T](0)
|
|
|
|
def withDefaultErrorResponse[T](implicit m: Manifest[T]) = withErrorResponse[T](0)
|
|
|
|
def responseForCode(statusCode: Int): Option[(Manifest[_], ResponseState)] = responses.get(statusCode) orElse responses.get(0)
|
|
|
|
def withoutBody() = copy[U](bodyParam = None)
|
|
|
|
def withBody(body: Any) = copy[U](bodyParam = Some(body))
|
|
|
|
def withFormParam(name: String, value: Any) = copy[U](formParams = formParams + (name -> value))
|
|
|
|
def withPathParam(name: String, value: Any) = copy[U](pathParams = pathParams + (name -> value))
|
|
|
|
def withQueryParam(name: String, value: Any) = copy[U](queryParams = queryParams + (name -> value))
|
|
|
|
def withHeaderParam(name: String, value: Any) = copy[U](headerParams = headerParams + (name -> value))
|
|
}
|