41 lines
1.4 KiB
Text
41 lines
1.4 KiB
Text
package se.senashdev.project.api
|
|
|
|
import se.rutdev.projekt.api.HttpProtocol.VersionedResponse
|
|
import se.rutdev.framework.json.circe.RutUtilsCodec
|
|
import se.rutdev.framework
|
|
import se.rutdev.framework.service.api.{OAuthUtils, RequestMeta, RutTapir}
|
|
import se.rutdev.pd.ProblemDetailProtocol.ProblemDetail
|
|
import sttp.tapir.Schema
|
|
|
|
class Endpoints(override val config: OAuthUtils.OAuthConfig) extends framework.service.api.Endpoints with RutTapir with RutUtilsCodec:
|
|
type ApiEndpoint[I, O] = OAuthEndpoint[RequestMeta.OAuthRequestMeta, I, ProblemDetail, O]
|
|
|
|
<#list datatypes as datatype>
|
|
case class ${datatype.name}(
|
|
<#list datatype.fields as field>
|
|
${field.name} : ${field.type},
|
|
</#list>
|
|
)
|
|
</#list>
|
|
|
|
<#list endpoints as endpoint>
|
|
case class ${endpoint.handler.name?cap_first}Payload(
|
|
<#list endpoint.handler.fields as field>
|
|
${field.name} : ${field.type},
|
|
</#list>
|
|
)
|
|
</#list>
|
|
|
|
<#list endpoints as endpoint>
|
|
val ${endpoint.handler.name}Endpoint = ApiEndpoint[${endpoint.handler.name?cap_first}Payload, VersionedResponse] =
|
|
<#list endpoint.paths.paths>
|
|
apiV1Endpoint
|
|
.post
|
|
<#items as segment>
|
|
.in("${segment}")
|
|
</#items>
|
|
.post
|
|
.in(jsonBody[${endpoint.handler.name?cap_first}Payload])
|
|
.out(jsonBody[VersionedResponse])
|
|
</#list>
|
|
</#list>
|