{-# OPTIONS_GHC -fno-warn-orphans #-}

module Mensam.Server.OpenApi where

import Mensam.API.Aeson
import Mensam.API.Aeson.StaticText
import Mensam.API.Data.Desk
import Mensam.API.Data.Reservation
import Mensam.API.Data.Space
import Mensam.API.Data.Space.Permission
import Mensam.API.Data.User
import Mensam.API.Data.User.Password
import Mensam.API.Data.User.Username
import Mensam.API.Order
import Mensam.API.Route.Api qualified as Route.Api
import Mensam.API.Route.Api.Reservation qualified as Route.Reservation
import Mensam.API.Route.Api.Space qualified as Route.Space
import Mensam.API.Route.Api.User qualified as Route.User
import Mensam.API.Update

import Control.Lens
import Data.Aeson qualified as A
import Data.HashMap.Strict.InsOrd qualified as HMIO
import Data.OpenApi
import Data.Proxy
import Data.Text qualified as T
import Data.Text.Lazy.Encoding qualified as TL
import Data.Text.Lazy.IO qualified as TL
import Data.Typeable
import Deriving.Aeson qualified as A
import Deriving.Aeson.OrphanInstances qualified as A ()
import GHC.TypeLits
import Servant.API
import Servant.Auth.OrphanInstances ()
import Servant.OpenApi
import Text.Email.OrphanInstances ()

openapi ::
  OpenApi
openapi :: OpenApi
openapi = Proxy (NamedRoutes Routes) -> OpenApi
forall {k} (api :: k). HasOpenApi api => Proxy api -> OpenApi
toOpenApi (Proxy (NamedRoutes Routes) -> OpenApi)
-> Proxy (NamedRoutes Routes) -> OpenApi
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @(NamedRoutes Route.Api.Routes)

instance ToSchema OpenApi where
  declareNamedSchema :: Proxy OpenApi -> Declare (Definitions Schema) NamedSchema
declareNamedSchema Proxy OpenApi
Proxy =
    NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a b. (a -> b) -> a -> b
$
      Maybe Text -> Schema -> NamedSchema
NamedSchema (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
"OpenAPI") (Schema -> NamedSchema) -> Schema -> NamedSchema
forall a b. (a -> b) -> a -> b
$
        Schema
forall a. Monoid a => a
mempty
          Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe Value -> Identity (Maybe Value))
-> Schema -> Identity Schema
forall s a. HasExample s a => Lens' s a
Lens' Schema (Maybe Value)
example ((Maybe Value -> Identity (Maybe Value))
 -> Schema -> Identity Schema)
-> Value -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ OpenApi -> Value
forall a. ToJSON a => a -> Value
A.toJSON OpenApi
openapiExample
   where
    openapiExample :: OpenApi
    openapiExample :: OpenApi
openapiExample =
      OpenApi
forall a. Monoid a => a
mempty
        OpenApi -> (OpenApi -> OpenApi) -> OpenApi
forall a b. a -> (a -> b) -> b
& (Info -> Identity Info) -> OpenApi -> Identity OpenApi
forall s a. HasInfo s a => Lens' s a
Lens' OpenApi Info
info ((Info -> Identity Info) -> OpenApi -> Identity OpenApi)
-> ((Text -> Identity Text) -> Info -> Identity Info)
-> (Text -> Identity Text)
-> OpenApi
-> Identity OpenApi
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Text -> Identity Text) -> Info -> Identity Info
forall s a. HasTitle s a => Lens' s a
Lens' Info Text
title ((Text -> Identity Text) -> OpenApi -> Identity OpenApi)
-> Text -> OpenApi -> OpenApi
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Text
"Example API"
        OpenApi -> (OpenApi -> OpenApi) -> OpenApi
forall a b. a -> (a -> b) -> b
& (Info -> Identity Info) -> OpenApi -> Identity OpenApi
forall s a. HasInfo s a => Lens' s a
Lens' OpenApi Info
info ((Info -> Identity Info) -> OpenApi -> Identity OpenApi)
-> ((Text -> Identity Text) -> Info -> Identity Info)
-> (Text -> Identity Text)
-> OpenApi
-> Identity OpenApi
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Text -> Identity Text) -> Info -> Identity Info
forall s a. HasVersion s a => Lens' s a
Lens' Info Text
version ((Text -> Identity Text) -> OpenApi -> Identity OpenApi)
-> Text -> OpenApi -> OpenApi
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Text
"1.0.0"
        OpenApi -> (OpenApi -> OpenApi) -> OpenApi
forall a b. a -> (a -> b) -> b
& (InsOrdHashMap FilePath PathItem
 -> Identity (InsOrdHashMap FilePath PathItem))
-> OpenApi -> Identity OpenApi
forall s a. HasPaths s a => Lens' s a
Lens' OpenApi (InsOrdHashMap FilePath PathItem)
paths
          ((InsOrdHashMap FilePath PathItem
  -> Identity (InsOrdHashMap FilePath PathItem))
 -> OpenApi -> Identity OpenApi)
-> InsOrdHashMap FilePath PathItem -> OpenApi -> OpenApi
forall s t a b. ASetter s t a b -> b -> s -> t
.~ FilePath -> PathItem -> InsOrdHashMap FilePath PathItem
forall k v. Hashable k => k -> v -> InsOrdHashMap k v
HMIO.singleton
            FilePath
"/hello_world"
            ( PathItem
forall a. Monoid a => a
mempty
                PathItem -> (PathItem -> PathItem) -> PathItem
forall a b. a -> (a -> b) -> b
& (Maybe Operation -> Identity (Maybe Operation))
-> PathItem -> Identity PathItem
forall s a. HasGet s a => Lens' s a
Lens' PathItem (Maybe Operation)
get
                  ((Maybe Operation -> Identity (Maybe Operation))
 -> PathItem -> Identity PathItem)
-> Operation -> PathItem -> PathItem
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ ( Operation
forall a. Monoid a => a
mempty
                        Operation -> (Operation -> Operation) -> Operation
forall a b. a -> (a -> b) -> b
& Index Operation -> Lens' Operation (Maybe (IxValue Operation))
forall m. At m => Index m -> Lens' m (Maybe (IxValue m))
at Index Operation
200 ((Maybe (IxValue Operation)
  -> Identity (Maybe (IxValue Operation)))
 -> Operation -> Identity Operation)
-> IxValue Operation -> Operation -> Operation
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ IxValue Operation
"OK"
                     )
            )

instance ToParamSchema Password where
  toParamSchema :: Proxy Password -> Schema
toParamSchema Proxy Password
Proxy =
    Schema
forall a. Monoid a => a
mempty
      Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe OpenApiType -> Identity (Maybe OpenApiType))
-> Schema -> Identity Schema
forall s a. HasType s a => Lens' s a
Lens' Schema (Maybe OpenApiType)
type_ ((Maybe OpenApiType -> Identity (Maybe OpenApiType))
 -> Schema -> Identity Schema)
-> OpenApiType -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ OpenApiType
OpenApiString
      Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe Integer -> Identity (Maybe Integer))
-> Schema -> Identity Schema
forall s a. HasMinLength s a => Lens' s a
Lens' Schema (Maybe Integer)
minLength ((Maybe Integer -> Identity (Maybe Integer))
 -> Schema -> Identity Schema)
-> Integer -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ Integer
4
      Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe Integer -> Identity (Maybe Integer))
-> Schema -> Identity Schema
forall s a. HasMaxLength s a => Lens' s a
Lens' Schema (Maybe Integer)
maxLength ((Maybe Integer -> Identity (Maybe Integer))
 -> Schema -> Identity Schema)
-> Integer -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ Integer
32
      Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe Text -> Identity (Maybe Text)) -> Schema -> Identity Schema
forall s a. HasPattern s a => Lens' s a
Lens' Schema (Maybe Text)
Data.OpenApi.pattern ((Maybe Text -> Identity (Maybe Text))
 -> Schema -> Identity Schema)
-> Text -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ (Text
"^[a-zA-Z0-9" Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> FilePath -> Text
T.pack (FilePath -> FilePath
escapeCharsForPatternCharacterSet FilePath
passwordValidSymbols) Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
"]{4,32}$")
instance ToSchema Password where
  declareNamedSchema :: Proxy Password -> Declare (Definitions Schema) NamedSchema
declareNamedSchema = NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> (Proxy Password -> NamedSchema)
-> Proxy Password
-> Declare (Definitions Schema) NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Maybe Text -> Schema -> NamedSchema
NamedSchema (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
"Password") (Schema -> NamedSchema)
-> (Proxy Password -> Schema) -> Proxy Password -> NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Proxy Password -> Schema
forall a. ToParamSchema a => Proxy a -> Schema
paramSchemaToSchema

instance ToParamSchema Username where
  toParamSchema :: Proxy Username -> Schema
toParamSchema Proxy Username
Proxy =
    Schema
forall a. Monoid a => a
mempty
      Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe OpenApiType -> Identity (Maybe OpenApiType))
-> Schema -> Identity Schema
forall s a. HasType s a => Lens' s a
Lens' Schema (Maybe OpenApiType)
type_ ((Maybe OpenApiType -> Identity (Maybe OpenApiType))
 -> Schema -> Identity Schema)
-> OpenApiType -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ OpenApiType
OpenApiString
      Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe Integer -> Identity (Maybe Integer))
-> Schema -> Identity Schema
forall s a. HasMinLength s a => Lens' s a
Lens' Schema (Maybe Integer)
minLength ((Maybe Integer -> Identity (Maybe Integer))
 -> Schema -> Identity Schema)
-> Integer -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ Integer
4
      Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe Integer -> Identity (Maybe Integer))
-> Schema -> Identity Schema
forall s a. HasMaxLength s a => Lens' s a
Lens' Schema (Maybe Integer)
maxLength ((Maybe Integer -> Identity (Maybe Integer))
 -> Schema -> Identity Schema)
-> Integer -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ Integer
32
      Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe Text -> Identity (Maybe Text)) -> Schema -> Identity Schema
forall s a. HasPattern s a => Lens' s a
Lens' Schema (Maybe Text)
Data.OpenApi.pattern ((Maybe Text -> Identity (Maybe Text))
 -> Schema -> Identity Schema)
-> Text -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ Text
"^[a-zA-Z0-9]{4,32}$"
instance ToSchema Username where
  declareNamedSchema :: Proxy Username -> Declare (Definitions Schema) NamedSchema
declareNamedSchema = NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> (Proxy Username -> NamedSchema)
-> Proxy Username
-> Declare (Definitions Schema) NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Maybe Text -> Schema -> NamedSchema
NamedSchema (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
"Username") (Schema -> NamedSchema)
-> (Proxy Username -> Schema) -> Proxy Username -> NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Proxy Username -> Schema
forall a. ToParamSchema a => Proxy a -> Schema
paramSchemaToSchema

instance KnownSymbol text => ToParamSchema (StaticText text) where
  toParamSchema :: Proxy (StaticText text) -> Schema
toParamSchema Proxy (StaticText text)
Proxy =
    Schema
forall a. Monoid a => a
mempty
      Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe OpenApiType -> Identity (Maybe OpenApiType))
-> Schema -> Identity Schema
forall s a. HasType s a => Lens' s a
Lens' Schema (Maybe OpenApiType)
type_ ((Maybe OpenApiType -> Identity (Maybe OpenApiType))
 -> Schema -> Identity Schema)
-> OpenApiType -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ OpenApiType
OpenApiString
      Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe [Value] -> Identity (Maybe [Value]))
-> Schema -> Identity Schema
forall s a. HasEnum s a => Lens' s a
Lens' Schema (Maybe [Value])
enum_ ((Maybe [Value] -> Identity (Maybe [Value]))
 -> Schema -> Identity Schema)
-> [Value] -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ [StaticText text -> Value
forall a. ToJSON a => a -> Value
A.toJSON (StaticText text -> Value) -> StaticText text -> Value
forall a b. (a -> b) -> a -> b
$ forall (text :: Symbol). StaticText text
MkStaticText @text]
instance KnownSymbol text => ToSchema (StaticText text) where
  declareNamedSchema :: Proxy (StaticText text) -> Declare (Definitions Schema) NamedSchema
declareNamedSchema = NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> (Proxy (StaticText text) -> NamedSchema)
-> Proxy (StaticText text)
-> Declare (Definitions Schema) NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Maybe Text -> Schema -> NamedSchema
NamedSchema (Text -> Maybe Text
forall a. a -> Maybe a
Just (Text -> Maybe Text) -> Text -> Maybe Text
forall a b. (a -> b) -> a -> b
$ Text
"StaticText: " Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
text) (Schema -> NamedSchema)
-> (Proxy (StaticText text) -> Schema)
-> Proxy (StaticText text)
-> NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Proxy (StaticText text) -> Schema
forall a. ToParamSchema a => Proxy a -> Schema
paramSchemaToSchema
   where
    text :: Text
text = FilePath -> Text
T.pack (FilePath -> Text) -> FilePath -> Text
forall a b. (a -> b) -> a -> b
$ Value -> FilePath
forall a. Show a => a -> FilePath
show (Value -> FilePath) -> Value -> FilePath
forall a b. (a -> b) -> a -> b
$ StaticText text -> Value
forall a. ToJSON a => a -> Value
A.toJSON (StaticText text -> Value) -> StaticText text -> Value
forall a b. (a -> b) -> a -> b
$ forall (text :: Symbol). StaticText text
MkStaticText @text

instance ToParamSchema (StaticTexts '[]) where
  toParamSchema :: Proxy (StaticTexts '[]) -> Schema
toParamSchema Proxy (StaticTexts '[])
Proxy =
    Schema
forall a. Monoid a => a
mempty
      Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe OpenApiType -> Identity (Maybe OpenApiType))
-> Schema -> Identity Schema
forall s a. HasType s a => Lens' s a
Lens' Schema (Maybe OpenApiType)
type_ ((Maybe OpenApiType -> Identity (Maybe OpenApiType))
 -> Schema -> Identity Schema)
-> OpenApiType -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ OpenApiType
OpenApiString
      Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe [Value] -> Identity (Maybe [Value]))
-> Schema -> Identity Schema
forall s a. HasEnum s a => Lens' s a
Lens' Schema (Maybe [Value])
enum_ ((Maybe [Value] -> Identity (Maybe [Value]))
 -> Schema -> Identity Schema)
-> [Value] -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ []
instance (KnownSymbol text, ToParamSchema (StaticTexts texts)) => ToParamSchema (StaticTexts (text : texts)) where
  toParamSchema :: Proxy (StaticTexts (text : texts)) -> Schema
toParamSchema Proxy (StaticTexts (text : texts))
Proxy =
    Schema
recParamSchema
      Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe [Value] -> Identity (Maybe [Value]))
-> Schema -> Identity Schema
forall s a. HasEnum s a => Lens' s a
Lens' Schema (Maybe [Value])
enum_ ((Maybe [Value] -> Identity (Maybe [Value]))
 -> Schema -> Identity Schema)
-> Maybe [Value] -> Schema -> Schema
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ((StaticText text -> Value
forall a. ToJSON a => a -> Value
A.toJSON (forall (text :: Symbol). StaticText text
MkStaticText @text) :) ([Value] -> [Value]) -> Maybe [Value] -> Maybe [Value]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Schema
recParamSchema Schema
-> Getting (Maybe [Value]) Schema (Maybe [Value]) -> Maybe [Value]
forall s a. s -> Getting a s a -> a
^. Getting (Maybe [Value]) Schema (Maybe [Value])
forall s a. HasEnum s a => Lens' s a
Lens' Schema (Maybe [Value])
enum_))
   where
    recParamSchema :: Schema
recParamSchema = Proxy (StaticTexts texts) -> Schema
forall a. ToParamSchema a => Proxy a -> Schema
toParamSchema (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @(StaticTexts texts))
instance ToSchema (StaticTexts '[]) where
  declareNamedSchema :: Proxy (StaticTexts '[]) -> Declare (Definitions Schema) NamedSchema
declareNamedSchema = NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> (Proxy (StaticTexts '[]) -> NamedSchema)
-> Proxy (StaticTexts '[])
-> Declare (Definitions Schema) NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Maybe Text -> Schema -> NamedSchema
NamedSchema (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
"StaticTexts: ") (Schema -> NamedSchema)
-> (Proxy (StaticTexts '[]) -> Schema)
-> Proxy (StaticTexts '[])
-> NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Proxy (StaticTexts '[]) -> Schema
forall a. ToParamSchema a => Proxy a -> Schema
paramSchemaToSchema
instance (KnownSymbol text, ToSchema (StaticTexts texts), Typeable texts) => ToSchema (StaticTexts (text : texts)) where
  declareNamedSchema :: Proxy (StaticTexts (text : texts))
-> Declare (Definitions Schema) NamedSchema
declareNamedSchema Proxy (StaticTexts (text : texts))
Proxy = do
    NamedSchema
namedSchema <- Proxy (StaticTexts texts)
-> Declare (Definitions Schema) NamedSchema
forall a.
ToSchema a =>
Proxy a -> Declare (Definitions Schema) NamedSchema
declareNamedSchema (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @(StaticTexts texts))
    NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a b. (a -> b) -> a -> b
$
      NamedSchema
namedSchema
        NamedSchema -> (NamedSchema -> NamedSchema) -> NamedSchema
forall a b. a -> (a -> b) -> b
& (Maybe [Value] -> Identity (Maybe [Value]))
-> NamedSchema -> Identity NamedSchema
forall s a. HasEnum s a => Lens' s a
Lens' NamedSchema (Maybe [Value])
enum_ ((Maybe [Value] -> Identity (Maybe [Value]))
 -> NamedSchema -> Identity NamedSchema)
-> Maybe [Value] -> NamedSchema -> NamedSchema
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ((StaticText text -> Value
forall a. ToJSON a => a -> Value
A.toJSON (forall (text :: Symbol). StaticText text
MkStaticText @text) :) ([Value] -> [Value]) -> Maybe [Value] -> Maybe [Value]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (NamedSchema
namedSchema NamedSchema
-> Getting (Maybe [Value]) NamedSchema (Maybe [Value])
-> Maybe [Value]
forall s a. s -> Getting a s a -> a
^. Getting (Maybe [Value]) NamedSchema (Maybe [Value])
forall s a. HasEnum s a => Lens' s a
Lens' NamedSchema (Maybe [Value])
enum_))
        NamedSchema -> (NamedSchema -> NamedSchema) -> NamedSchema
forall a b. a -> (a -> b) -> b
& (Maybe Text -> Identity (Maybe Text))
-> NamedSchema -> Identity NamedSchema
forall s a. HasName s a => Lens' s a
Lens' NamedSchema (Maybe Text)
name ((Maybe Text -> Identity (Maybe Text))
 -> NamedSchema -> Identity NamedSchema)
-> Maybe Text -> NamedSchema -> NamedSchema
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ((Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> (FilePath -> Text
T.pack (FilePath -> Text) -> FilePath -> Text
forall a b. (a -> b) -> a -> b
$ Value -> FilePath
forall a. Show a => a -> FilePath
show (Value -> FilePath) -> Value -> FilePath
forall a b. (a -> b) -> a -> b
$ StaticText text -> Value
forall a. ToJSON a => a -> Value
A.toJSON (StaticText text -> Value) -> StaticText text -> Value
forall a b. (a -> b) -> a -> b
$ forall (text :: Symbol). StaticText text
MkStaticText @text)) (Text -> Text) -> Maybe Text -> Maybe Text
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (NamedSchema
namedSchema NamedSchema
-> Getting (Maybe Text) NamedSchema (Maybe Text) -> Maybe Text
forall s a. s -> Getting a s a -> a
^. Getting (Maybe Text) NamedSchema (Maybe Text)
forall s a. HasName s a => Lens' s a
Lens' NamedSchema (Maybe Text)
name))

instance ToSchema Route.User.Jwt where
  declareNamedSchema :: Proxy Jwt -> Declare (Definitions Schema) NamedSchema
declareNamedSchema Proxy Jwt
Proxy =
    NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a b. (a -> b) -> a -> b
$
      Maybe Text -> Schema -> NamedSchema
NamedSchema (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
"JWT") (Schema -> NamedSchema) -> Schema -> NamedSchema
forall a b. (a -> b) -> a -> b
$
        Schema
forall a. Monoid a => a
mempty
          Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe OpenApiType -> Identity (Maybe OpenApiType))
-> Schema -> Identity Schema
forall s a. HasType s a => Lens' s a
Lens' Schema (Maybe OpenApiType)
type_ ((Maybe OpenApiType -> Identity (Maybe OpenApiType))
 -> Schema -> Identity Schema)
-> OpenApiType -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ OpenApiType
OpenApiString
          Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe Text -> Identity (Maybe Text)) -> Schema -> Identity Schema
forall s a. HasFormat s a => Lens' s a
Lens' Schema (Maybe Text)
format ((Maybe Text -> Identity (Maybe Text))
 -> Schema -> Identity Schema)
-> Text -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ Text
"jwt"
          Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe Value -> Identity (Maybe Value))
-> Schema -> Identity Schema
forall s a. HasExample s a => Lens' s a
Lens' Schema (Maybe Value)
example ((Maybe Value -> Identity (Maybe Value))
 -> Schema -> Identity Schema)
-> Value -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ Text -> Value
A.String Text
"eyJhbGciOiJIUzUxMiJ9.eyJkYXQiOnsiaWQiOnsidW5JZGVudGlmaWVyVXNlciI6Mn19LCJleHAiOjEuNjgwMzAyMDY3Njc1OTUxMjYyZTl9.6RGNeoQC7nrA4O_IYfaMchojHLk-ScKSBi1f7-R1_qhUdttNIzVJzZfORvt5IzSfo9ye4OnHphDLDiU76qFxEQ"

instance Typeable p => ToParamSchema (ErrorInsufficientPermission p) where
  toParamSchema :: Proxy (ErrorInsufficientPermission p) -> Schema
toParamSchema Proxy (ErrorInsufficientPermission p)
Proxy =
    Schema
forall a. Monoid a => a
mempty
      Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe OpenApiType -> Identity (Maybe OpenApiType))
-> Schema -> Identity Schema
forall s a. HasType s a => Lens' s a
Lens' Schema (Maybe OpenApiType)
type_ ((Maybe OpenApiType -> Identity (Maybe OpenApiType))
 -> Schema -> Identity Schema)
-> OpenApiType -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ OpenApiType
OpenApiString
      Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe [Value] -> Identity (Maybe [Value]))
-> Schema -> Identity Schema
forall s a. HasEnum s a => Lens' s a
Lens' Schema (Maybe [Value])
enum_ ((Maybe [Value] -> Identity (Maybe [Value]))
 -> Schema -> Identity Schema)
-> [Value] -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ [ErrorInsufficientPermission p -> Value
forall a. ToJSON a => a -> Value
A.toJSON (ErrorInsufficientPermission p -> Value)
-> ErrorInsufficientPermission p -> Value
forall a b. (a -> b) -> a -> b
$ forall (p :: Permission). ErrorInsufficientPermission p
MkErrorInsufficientPermission @p]
instance Typeable p => ToSchema (ErrorInsufficientPermission p) where
  declareNamedSchema :: Proxy (ErrorInsufficientPermission p)
-> Declare (Definitions Schema) NamedSchema
declareNamedSchema = NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> (Proxy (ErrorInsufficientPermission p) -> NamedSchema)
-> Proxy (ErrorInsufficientPermission p)
-> Declare (Definitions Schema) NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Maybe Text -> Schema -> NamedSchema
NamedSchema (Text -> Maybe Text
forall a. a -> Maybe a
Just (Text -> Maybe Text) -> Text -> Maybe Text
forall a b. (a -> b) -> a -> b
$ Text
"ErrorInsufficientPermission: " Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
text) (Schema -> NamedSchema)
-> (Proxy (ErrorInsufficientPermission p) -> Schema)
-> Proxy (ErrorInsufficientPermission p)
-> NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Proxy (ErrorInsufficientPermission p) -> Schema
forall a. ToParamSchema a => Proxy a -> Schema
paramSchemaToSchema
   where
    text :: Text
text = FilePath -> Text
T.pack (FilePath -> Text) -> FilePath -> Text
forall a b. (a -> b) -> a -> b
$ Value -> FilePath
forall a. Show a => a -> FilePath
show (Value -> FilePath) -> Value -> FilePath
forall a b. (a -> b) -> a -> b
$ ErrorInsufficientPermission p -> Value
forall a. ToJSON a => a -> Value
A.toJSON (ErrorInsufficientPermission p -> Value)
-> ErrorInsufficientPermission p -> Value
forall a b. (a -> b) -> a -> b
$ forall (p :: Permission). ErrorInsufficientPermission p
MkErrorInsufficientPermission @p

deriving via A.CustomJSON (JSONSettings "MkErrorBasicAuth" "") ErrorBasicAuth instance ToSchema ErrorBasicAuth
deriving newtype instance ToSchema ErrorBearerAuth
deriving via A.CustomJSON (JSONSettings "Mk" "errorParseBodyJson") ErrorParseBodyJson instance ToSchema ErrorParseBodyJson
deriving via A.CustomJSON (JSONSettings "Mk" "errorParseBodyJpeg") ErrorParseBodyJpeg instance ToSchema ErrorParseBodyJpeg
deriving via A.CustomJSON (JSONSettings "" "") (NameOrIdentifier name identifier) instance (ToSchema name, ToSchema identifier) => ToSchema (NameOrIdentifier name identifier)
deriving newtype instance ToParamSchema IdentifierUser
deriving newtype instance ToSchema IdentifierUser
deriving newtype instance ToSchema ConfirmationSecret
deriving via A.CustomJSON (JSONSettings "Mk" "space") Space instance ToSchema Space
deriving newtype instance ToSchema IdentifierSpace
deriving newtype instance ToParamSchema IdentifierSpace
deriving newtype instance ToSchema NameSpace
deriving via A.CustomJSON (JSONSettings "Mk" "role") Role instance ToSchema Role
deriving newtype instance ToSchema IdentifierRole
deriving newtype instance ToSchema NameRole
deriving via A.CustomJSON (JSONSettings "MkAccessibilityRole" "") AccessibilityRole instance ToSchema AccessibilityRole
deriving via A.CustomJSON (JSONSettings "MkVisibilitySpace" "") VisibilitySpace instance ToSchema VisibilitySpace
deriving via A.CustomJSON (JSONSettings "Mk" "spaceUser") SpaceUser instance ToSchema SpaceUser
deriving via A.CustomJSON (JSONSettings "MkPermission" "") Permission instance ToSchema Permission
deriving via A.CustomJSON (JSONSettings "Mk" "desk") Desk instance ToSchema Desk
deriving newtype instance ToSchema IdentifierDesk
deriving newtype instance ToSchema NameDesk
deriving via A.CustomJSON (JSONSettings "Mk" "deskNameWithContext") DeskNameWithContext instance ToSchema DeskNameWithContext
deriving via A.CustomJSON (JSONSettings "Mk" "locationDesk") LocationDesk instance ToSchema LocationDesk
deriving via A.CustomJSON (JSONSettings "Mk" "positionDesk") PositionDesk instance ToSchema PositionDesk
deriving newtype instance ToSchema DirectionDesk
instance ToSchema Direction where
  declareNamedSchema :: Proxy Direction -> Declare (Definitions Schema) NamedSchema
declareNamedSchema Proxy Direction
Proxy =
    Proxy Double -> Declare (Definitions Schema) NamedSchema
forall a.
ToSchema a =>
Proxy a -> Declare (Definitions Schema) NamedSchema
declareNamedSchema (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @Double)
      Declare (Definitions Schema) NamedSchema
-> (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> Declare (Definitions Schema) NamedSchema
forall a b.
DeclareT (Definitions Schema) Identity a
-> (a -> DeclareT (Definitions Schema) Identity b)
-> DeclareT (Definitions Schema) Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \NamedSchema
x ->
        NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a b. (a -> b) -> a -> b
$
          NamedSchema
x
            NamedSchema -> (NamedSchema -> NamedSchema) -> NamedSchema
forall a b. a -> (a -> b) -> b
& (Schema -> Identity Schema) -> NamedSchema -> Identity NamedSchema
forall s a. HasSchema s a => Lens' s a
Lens' NamedSchema Schema
schema ((Schema -> Identity Schema)
 -> NamedSchema -> Identity NamedSchema)
-> ((Maybe Text -> Identity (Maybe Text))
    -> Schema -> Identity Schema)
-> (Maybe Text -> Identity (Maybe Text))
-> NamedSchema
-> Identity NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe Text -> Identity (Maybe Text)) -> Schema -> Identity Schema
forall s a. HasDescription s a => Lens' s a
Lens' Schema (Maybe Text)
description ((Maybe Text -> Identity (Maybe Text))
 -> NamedSchema -> Identity NamedSchema)
-> Text -> NamedSchema -> NamedSchema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ Text
"Direction on a 2D plane given as the angle relativ to North using degrees. The angle `x` must satisfy `0 <= x < 360`."
deriving via A.CustomJSON (JSONSettings "Mk" "sizeDesk") SizeDesk instance ToSchema SizeDesk
instance ToSchema (ConstrainedDouble '[]) where
  declareNamedSchema :: Proxy (ConstrainedDouble '[])
-> Declare (Definitions Schema) NamedSchema
declareNamedSchema Proxy (ConstrainedDouble '[])
Proxy =
    Proxy Double -> Declare (Definitions Schema) NamedSchema
forall a.
ToSchema a =>
Proxy a -> Declare (Definitions Schema) NamedSchema
declareNamedSchema (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @Double)
      Declare (Definitions Schema) NamedSchema
-> (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> Declare (Definitions Schema) NamedSchema
forall a b.
DeclareT (Definitions Schema) Identity a
-> (a -> DeclareT (Definitions Schema) Identity b)
-> DeclareT (Definitions Schema) Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \NamedSchema
x ->
        NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a b. (a -> b) -> a -> b
$
          NamedSchema
x
            NamedSchema -> (NamedSchema -> NamedSchema) -> NamedSchema
forall a b. a -> (a -> b) -> b
& (Schema -> Identity Schema) -> NamedSchema -> Identity NamedSchema
forall s a. HasSchema s a => Lens' s a
Lens' NamedSchema Schema
schema ((Schema -> Identity Schema)
 -> NamedSchema -> Identity NamedSchema)
-> ((Maybe Text -> Identity (Maybe Text))
    -> Schema -> Identity Schema)
-> (Maybe Text -> Identity (Maybe Text))
-> NamedSchema
-> Identity NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe Text -> Identity (Maybe Text)) -> Schema -> Identity Schema
forall s a. HasDescription s a => Lens' s a
Lens' Schema (Maybe Text)
description ((Maybe Text -> Identity (Maybe Text))
 -> NamedSchema -> Identity NamedSchema)
-> Text -> NamedSchema -> NamedSchema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ Text
"A constrained number:"
instance (KnownNat n, ToSchema (ConstrainedDouble cs), Typeable cs) => ToSchema (ConstrainedDouble (MkConstraintDoubleGreaterEqual n : cs)) where
  declareNamedSchema :: Proxy (ConstrainedDouble (MkConstraintDoubleGreaterEqual n : cs))
-> Declare (Definitions Schema) NamedSchema
declareNamedSchema Proxy (ConstrainedDouble (MkConstraintDoubleGreaterEqual n : cs))
Proxy =
    Proxy (ConstrainedDouble cs)
-> Declare (Definitions Schema) NamedSchema
forall a.
ToSchema a =>
Proxy a -> Declare (Definitions Schema) NamedSchema
declareNamedSchema (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @(ConstrainedDouble cs))
      Declare (Definitions Schema) NamedSchema
-> (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> Declare (Definitions Schema) NamedSchema
forall a b.
DeclareT (Definitions Schema) Identity a
-> (a -> DeclareT (Definitions Schema) Identity b)
-> DeclareT (Definitions Schema) Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \NamedSchema
x ->
        NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a b. (a -> b) -> a -> b
$
          NamedSchema
x
            NamedSchema -> (NamedSchema -> NamedSchema) -> NamedSchema
forall a b. a -> (a -> b) -> b
& (Schema -> Identity Schema) -> NamedSchema -> Identity NamedSchema
forall s a. HasSchema s a => Lens' s a
Lens' NamedSchema Schema
schema ((Schema -> Identity Schema)
 -> NamedSchema -> Identity NamedSchema)
-> ((Maybe Text -> Identity (Maybe Text))
    -> Schema -> Identity Schema)
-> (Maybe Text -> Identity (Maybe Text))
-> NamedSchema
-> Identity NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe Text -> Identity (Maybe Text)) -> Schema -> Identity Schema
forall s a. HasDescription s a => Lens' s a
Lens' Schema (Maybe Text)
description ((Maybe Text -> Identity (Maybe Text))
 -> NamedSchema -> Identity NamedSchema)
-> (Maybe Text -> Maybe Text) -> NamedSchema -> NamedSchema
forall s t a b. ASetter s t a b -> (a -> b) -> s -> t
%~ ((Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> (Text
" `n >= " Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> FilePath -> Text
T.pack (Integer -> FilePath
forall a. Show a => a -> FilePath
show (Proxy n -> Integer
forall (n :: Nat) (proxy :: Nat -> *).
KnownNat n =>
proxy n -> Integer
natVal (forall (t :: Nat). Proxy t
forall {k} (t :: k). Proxy t
Proxy @n))) Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
"`")) <$>)
instance (KnownNat n, ToSchema (ConstrainedDouble cs), Typeable cs) => ToSchema (ConstrainedDouble (MkConstraintDoubleGreaterThan n : cs)) where
  declareNamedSchema :: Proxy (ConstrainedDouble (MkConstraintDoubleGreaterThan n : cs))
-> Declare (Definitions Schema) NamedSchema
declareNamedSchema Proxy (ConstrainedDouble (MkConstraintDoubleGreaterThan n : cs))
Proxy =
    Proxy (ConstrainedDouble cs)
-> Declare (Definitions Schema) NamedSchema
forall a.
ToSchema a =>
Proxy a -> Declare (Definitions Schema) NamedSchema
declareNamedSchema (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @(ConstrainedDouble cs))
      Declare (Definitions Schema) NamedSchema
-> (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> Declare (Definitions Schema) NamedSchema
forall a b.
DeclareT (Definitions Schema) Identity a
-> (a -> DeclareT (Definitions Schema) Identity b)
-> DeclareT (Definitions Schema) Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \NamedSchema
x ->
        NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a b. (a -> b) -> a -> b
$
          NamedSchema
x
            NamedSchema -> (NamedSchema -> NamedSchema) -> NamedSchema
forall a b. a -> (a -> b) -> b
& (Schema -> Identity Schema) -> NamedSchema -> Identity NamedSchema
forall s a. HasSchema s a => Lens' s a
Lens' NamedSchema Schema
schema ((Schema -> Identity Schema)
 -> NamedSchema -> Identity NamedSchema)
-> ((Maybe Text -> Identity (Maybe Text))
    -> Schema -> Identity Schema)
-> (Maybe Text -> Identity (Maybe Text))
-> NamedSchema
-> Identity NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe Text -> Identity (Maybe Text)) -> Schema -> Identity Schema
forall s a. HasDescription s a => Lens' s a
Lens' Schema (Maybe Text)
description ((Maybe Text -> Identity (Maybe Text))
 -> NamedSchema -> Identity NamedSchema)
-> (Maybe Text -> Maybe Text) -> NamedSchema -> NamedSchema
forall s t a b. ASetter s t a b -> (a -> b) -> s -> t
%~ ((Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> (Text
" `n > " Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> FilePath -> Text
T.pack (Integer -> FilePath
forall a. Show a => a -> FilePath
show (Proxy n -> Integer
forall (n :: Nat) (proxy :: Nat -> *).
KnownNat n =>
proxy n -> Integer
natVal (forall (t :: Nat). Proxy t
forall {k} (t :: k). Proxy t
Proxy @n))) Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
"`")) <$>)
instance (KnownNat n, ToSchema (ConstrainedDouble cs), Typeable cs) => ToSchema (ConstrainedDouble (MkConstraintDoubleLessEqual n : cs)) where
  declareNamedSchema :: Proxy (ConstrainedDouble (MkConstraintDoubleLessEqual n : cs))
-> Declare (Definitions Schema) NamedSchema
declareNamedSchema Proxy (ConstrainedDouble (MkConstraintDoubleLessEqual n : cs))
Proxy =
    Proxy (ConstrainedDouble cs)
-> Declare (Definitions Schema) NamedSchema
forall a.
ToSchema a =>
Proxy a -> Declare (Definitions Schema) NamedSchema
declareNamedSchema (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @(ConstrainedDouble cs))
      Declare (Definitions Schema) NamedSchema
-> (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> Declare (Definitions Schema) NamedSchema
forall a b.
DeclareT (Definitions Schema) Identity a
-> (a -> DeclareT (Definitions Schema) Identity b)
-> DeclareT (Definitions Schema) Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \NamedSchema
x ->
        NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a b. (a -> b) -> a -> b
$
          NamedSchema
x
            NamedSchema -> (NamedSchema -> NamedSchema) -> NamedSchema
forall a b. a -> (a -> b) -> b
& (Schema -> Identity Schema) -> NamedSchema -> Identity NamedSchema
forall s a. HasSchema s a => Lens' s a
Lens' NamedSchema Schema
schema ((Schema -> Identity Schema)
 -> NamedSchema -> Identity NamedSchema)
-> ((Maybe Text -> Identity (Maybe Text))
    -> Schema -> Identity Schema)
-> (Maybe Text -> Identity (Maybe Text))
-> NamedSchema
-> Identity NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe Text -> Identity (Maybe Text)) -> Schema -> Identity Schema
forall s a. HasDescription s a => Lens' s a
Lens' Schema (Maybe Text)
description ((Maybe Text -> Identity (Maybe Text))
 -> NamedSchema -> Identity NamedSchema)
-> (Maybe Text -> Maybe Text) -> NamedSchema -> NamedSchema
forall s t a b. ASetter s t a b -> (a -> b) -> s -> t
%~ ((Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> (Text
" `n <= " Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> FilePath -> Text
T.pack (Integer -> FilePath
forall a. Show a => a -> FilePath
show (Proxy n -> Integer
forall (n :: Nat) (proxy :: Nat -> *).
KnownNat n =>
proxy n -> Integer
natVal (forall (t :: Nat). Proxy t
forall {k} (t :: k). Proxy t
Proxy @n))) Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
"`")) <$>)
instance (KnownNat n, ToSchema (ConstrainedDouble cs), Typeable cs) => ToSchema (ConstrainedDouble (MkConstraintDoubleLessThan n : cs)) where
  declareNamedSchema :: Proxy (ConstrainedDouble (MkConstraintDoubleLessThan n : cs))
-> Declare (Definitions Schema) NamedSchema
declareNamedSchema Proxy (ConstrainedDouble (MkConstraintDoubleLessThan n : cs))
Proxy =
    Proxy (ConstrainedDouble cs)
-> Declare (Definitions Schema) NamedSchema
forall a.
ToSchema a =>
Proxy a -> Declare (Definitions Schema) NamedSchema
declareNamedSchema (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @(ConstrainedDouble cs))
      Declare (Definitions Schema) NamedSchema
-> (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> Declare (Definitions Schema) NamedSchema
forall a b.
DeclareT (Definitions Schema) Identity a
-> (a -> DeclareT (Definitions Schema) Identity b)
-> DeclareT (Definitions Schema) Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \NamedSchema
x ->
        NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a b. (a -> b) -> a -> b
$
          NamedSchema
x
            NamedSchema -> (NamedSchema -> NamedSchema) -> NamedSchema
forall a b. a -> (a -> b) -> b
& (Schema -> Identity Schema) -> NamedSchema -> Identity NamedSchema
forall s a. HasSchema s a => Lens' s a
Lens' NamedSchema Schema
schema ((Schema -> Identity Schema)
 -> NamedSchema -> Identity NamedSchema)
-> ((Maybe Text -> Identity (Maybe Text))
    -> Schema -> Identity Schema)
-> (Maybe Text -> Identity (Maybe Text))
-> NamedSchema
-> Identity NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe Text -> Identity (Maybe Text)) -> Schema -> Identity Schema
forall s a. HasDescription s a => Lens' s a
Lens' Schema (Maybe Text)
description ((Maybe Text -> Identity (Maybe Text))
 -> NamedSchema -> Identity NamedSchema)
-> (Maybe Text -> Maybe Text) -> NamedSchema -> NamedSchema
forall s t a b. ASetter s t a b -> (a -> b) -> s -> t
%~ ((Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> (Text
" `n < " Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> FilePath -> Text
T.pack (Integer -> FilePath
forall a. Show a => a -> FilePath
show (Proxy n -> Integer
forall (n :: Nat) (proxy :: Nat -> *).
KnownNat n =>
proxy n -> Integer
natVal (forall (t :: Nat). Proxy t
forall {k} (t :: k). Proxy t
Proxy @n))) Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
"`")) <$>)
deriving via A.CustomJSON (JSONSettings "Mk" "reservation") Reservation instance ToSchema Reservation
deriving via A.CustomJSON (JSONSettings "MkStatusReservation" "") StatusReservation instance ToSchema StatusReservation
deriving newtype instance ToSchema IdentifierReservation
instance ToSchema a => ToSchema (Interval a) where
  declareNamedSchema :: Proxy (Interval a) -> Declare (Definitions Schema) NamedSchema
declareNamedSchema Proxy (Interval a)
Proxy =
    Proxy (CustomJSON (JSONSettings "Mk" "interval") (Interval a))
-> Declare (Definitions Schema) NamedSchema
forall a.
ToSchema a =>
Proxy a -> Declare (Definitions Schema) NamedSchema
declareNamedSchema (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @(A.CustomJSON (JSONSettings "Mk" "interval") (Interval a)))
      Declare (Definitions Schema) NamedSchema
-> (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> Declare (Definitions Schema) NamedSchema
forall a b.
DeclareT (Definitions Schema) Identity a
-> (a -> DeclareT (Definitions Schema) Identity b)
-> DeclareT (Definitions Schema) Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \NamedSchema
x ->
        NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a b. (a -> b) -> a -> b
$
          NamedSchema
x
            NamedSchema -> (NamedSchema -> NamedSchema) -> NamedSchema
forall a b. a -> (a -> b) -> b
& (Schema -> Identity Schema) -> NamedSchema -> Identity NamedSchema
forall s a. HasSchema s a => Lens' s a
Lens' NamedSchema Schema
schema ((Schema -> Identity Schema)
 -> NamedSchema -> Identity NamedSchema)
-> ((Maybe Text -> Identity (Maybe Text))
    -> Schema -> Identity Schema)
-> (Maybe Text -> Identity (Maybe Text))
-> NamedSchema
-> Identity NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe Text -> Identity (Maybe Text)) -> Schema -> Identity Schema
forall s a. HasDescription s a => Lens' s a
Lens' Schema (Maybe Text)
description ((Maybe Text -> Identity (Maybe Text))
 -> NamedSchema -> Identity NamedSchema)
-> Text -> NamedSchema -> NamedSchema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ Text
"An ordered interval: `start <= end`"
instance ToSchema a => ToSchema (IntervalNonDegenerate a) where
  declareNamedSchema :: Proxy (IntervalNonDegenerate a)
-> Declare (Definitions Schema) NamedSchema
declareNamedSchema Proxy (IntervalNonDegenerate a)
Proxy =
    Proxy (CustomJSON (JSONSettings "Mk" "interval") (Interval a))
-> Declare (Definitions Schema) NamedSchema
forall a.
ToSchema a =>
Proxy a -> Declare (Definitions Schema) NamedSchema
declareNamedSchema (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @(A.CustomJSON (JSONSettings "Mk" "interval") (Interval a)))
      Declare (Definitions Schema) NamedSchema
-> (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> Declare (Definitions Schema) NamedSchema
forall a b.
DeclareT (Definitions Schema) Identity a
-> (a -> DeclareT (Definitions Schema) Identity b)
-> DeclareT (Definitions Schema) Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \NamedSchema
x ->
        NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a b. (a -> b) -> a -> b
$
          NamedSchema
x
            NamedSchema -> (NamedSchema -> NamedSchema) -> NamedSchema
forall a b. a -> (a -> b) -> b
& (Schema -> Identity Schema) -> NamedSchema -> Identity NamedSchema
forall s a. HasSchema s a => Lens' s a
Lens' NamedSchema Schema
schema ((Schema -> Identity Schema)
 -> NamedSchema -> Identity NamedSchema)
-> ((Maybe Text -> Identity (Maybe Text))
    -> Schema -> Identity Schema)
-> (Maybe Text -> Identity (Maybe Text))
-> NamedSchema
-> Identity NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe Text -> Identity (Maybe Text)) -> Schema -> Identity Schema
forall s a. HasDescription s a => Lens' s a
Lens' Schema (Maybe Text)
description ((Maybe Text -> Identity (Maybe Text))
 -> NamedSchema -> Identity NamedSchema)
-> Text -> NamedSchema -> NamedSchema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ Text
"An ordered and non-degenerate interval: `start < end`"
instance ToSchema a => ToSchema (IntervalUnbounded a) where
  declareNamedSchema :: Proxy (IntervalUnbounded a)
-> Declare (Definitions Schema) NamedSchema
declareNamedSchema Proxy (IntervalUnbounded a)
Proxy =
    Proxy
  (CustomJSON (JSONSettings "Mk" "interval") (Interval (Maybe a)))
-> Declare (Definitions Schema) NamedSchema
forall a.
ToSchema a =>
Proxy a -> Declare (Definitions Schema) NamedSchema
declareNamedSchema (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @(A.CustomJSON (JSONSettings "Mk" "interval") (Interval (Maybe a))))
      Declare (Definitions Schema) NamedSchema
-> (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> Declare (Definitions Schema) NamedSchema
forall a b.
DeclareT (Definitions Schema) Identity a
-> (a -> DeclareT (Definitions Schema) Identity b)
-> DeclareT (Definitions Schema) Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \NamedSchema
x ->
        NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a b. (a -> b) -> a -> b
$
          NamedSchema
x
            NamedSchema -> (NamedSchema -> NamedSchema) -> NamedSchema
forall a b. a -> (a -> b) -> b
& (Schema -> Identity Schema) -> NamedSchema -> Identity NamedSchema
forall s a. HasSchema s a => Lens' s a
Lens' NamedSchema Schema
schema ((Schema -> Identity Schema)
 -> NamedSchema -> Identity NamedSchema)
-> ((Maybe Text -> Identity (Maybe Text))
    -> Schema -> Identity Schema)
-> (Maybe Text -> Identity (Maybe Text))
-> NamedSchema
-> Identity NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe Text -> Identity (Maybe Text)) -> Schema -> Identity Schema
forall s a. HasDescription s a => Lens' s a
Lens' Schema (Maybe Text)
description ((Maybe Text -> Identity (Maybe Text))
 -> NamedSchema -> Identity NamedSchema)
-> Text -> NamedSchema -> NamedSchema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ Text
"An ordered and potentially unbounded interval: `start < end`"

deriving via A.CustomJSON (JSONSettings "" "") Order instance ToSchema Order
deriving via A.CustomJSON (JSONSettings "Mk" "orderByCategory") (OrderByCategory a) instance ToSchema a => ToSchema (OrderByCategory a)

deriving via A.CustomJSON (JSONSettings "SpaceOrderCategory" "") SpaceOrderCategory instance ToSchema SpaceOrderCategory
deriving newtype instance ToSchema a => ToSchema (OrderByCategories a)

instance ToSchema a => ToSchema (Updatable a) where
  declareNamedSchema :: Proxy (Updatable a) -> Declare (Definitions Schema) NamedSchema
declareNamedSchema Proxy (Updatable a)
Proxy = do
    Referenced Schema
aSchema <- Proxy a -> Declare (Definitions Schema) (Referenced Schema)
forall a.
ToSchema a =>
Proxy a -> Declare (Definitions Schema) (Referenced Schema)
declareSchemaRef (Proxy a -> Declare (Definitions Schema) (Referenced Schema))
-> Proxy a -> Declare (Definitions Schema) (Referenced Schema)
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @a
    NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a. a -> DeclareT (Definitions Schema) Identity a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> Declare (Definitions Schema) NamedSchema)
-> NamedSchema -> Declare (Definitions Schema) NamedSchema
forall a b. (a -> b) -> a -> b
$
      Maybe Text -> Schema -> NamedSchema
NamedSchema (Text -> Maybe Text
forall a. a -> Maybe a
Just (Text -> Maybe Text) -> Text -> Maybe Text
forall a b. (a -> b) -> a -> b
$ FilePath -> Text
T.pack (FilePath
"Updatable_" FilePath -> FilePath -> FilePath
forall a. [a] -> [a] -> [a]
++ TyCon -> FilePath
tyConName (TypeRep -> TyCon
typeRepTyCon (Proxy a -> TypeRep
forall {k} (proxy :: k -> *) (a :: k).
Typeable a =>
proxy a -> TypeRep
typeRep (Proxy a -> TypeRep) -> Proxy a -> TypeRep
forall a b. (a -> b) -> a -> b
$ forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @a)))) (Schema -> NamedSchema) -> Schema -> NamedSchema
forall a b. (a -> b) -> a -> b
$
        Schema
forall a. Monoid a => a
mempty
          Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe OpenApiType -> Identity (Maybe OpenApiType))
-> Schema -> Identity Schema
forall s a. HasType s a => Lens' s a
Lens' Schema (Maybe OpenApiType)
type_ ((Maybe OpenApiType -> Identity (Maybe OpenApiType))
 -> Schema -> Identity Schema)
-> OpenApiType -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ OpenApiType
OpenApiObject
          Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& ([Text] -> Identity [Text]) -> Schema -> Identity Schema
forall s a. HasRequired s a => Lens' s a
Lens' Schema [Text]
required (([Text] -> Identity [Text]) -> Schema -> Identity Schema)
-> [Text] -> Schema -> Schema
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [Text
"update"]
          Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (InsOrdHashMap Text (Referenced Schema)
 -> Identity (InsOrdHashMap Text (Referenced Schema)))
-> Schema -> Identity Schema
forall s a. HasProperties s a => Lens' s a
Lens' Schema (InsOrdHashMap Text (Referenced Schema))
properties
            ((InsOrdHashMap Text (Referenced Schema)
  -> Identity (InsOrdHashMap Text (Referenced Schema)))
 -> Schema -> Identity Schema)
-> InsOrdHashMap Text (Referenced Schema) -> Schema -> Schema
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [(Text, Referenced Schema)]
-> InsOrdHashMap Text (Referenced Schema)
forall k v. (Eq k, Hashable k) => [(k, v)] -> InsOrdHashMap k v
HMIO.fromList
              [ (Text
"update", Schema -> Referenced Schema
forall a. a -> Referenced a
Inline (Schema -> Referenced Schema) -> Schema -> Referenced Schema
forall a b. (a -> b) -> a -> b
$ Schema
forall a. Monoid a => a
mempty Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe OpenApiType -> Identity (Maybe OpenApiType))
-> Schema -> Identity Schema
forall s a. HasType s a => Lens' s a
Lens' Schema (Maybe OpenApiType)
type_ ((Maybe OpenApiType -> Identity (Maybe OpenApiType))
 -> Schema -> Identity Schema)
-> OpenApiType -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ OpenApiType
OpenApiBoolean)
              , (Text
"value", Referenced Schema
aSchema)
              ]
          Schema -> (Schema -> Schema) -> Schema
forall a b. a -> (a -> b) -> b
& (Maybe Text -> Identity (Maybe Text)) -> Schema -> Identity Schema
forall s a. HasDescription s a => Lens' s a
Lens' Schema (Maybe Text)
description ((Maybe Text -> Identity (Maybe Text))
 -> Schema -> Identity Schema)
-> Text -> Schema -> Schema
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ Text
"Whether to overwrite a value with a new one. When \"update\" is `true` the \"value\" field is required. When \"update\" is `false` the value field must be omitted."

deriving via A.CustomJSON (JSONSettings "MkResponse" "responseLogin") Route.User.ResponseLogin instance ToSchema Route.User.ResponseLogin
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseLogout") Route.User.ResponseLogout instance ToSchema Route.User.ResponseLogout
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestRegister") Route.User.RequestRegister instance ToSchema Route.User.RequestRegister
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseRegister") Route.User.ResponseRegister instance ToSchema Route.User.ResponseRegister
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestPasswordChange") Route.User.RequestPasswordChange instance ToSchema Route.User.RequestPasswordChange
deriving via A.CustomJSON (JSONSettings "MkResponse" "responsePasswordChange") Route.User.ResponsePasswordChange instance ToSchema Route.User.ResponsePasswordChange
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseConfirmationRequest") Route.User.ResponseConfirmationRequest instance ToSchema Route.User.ResponseConfirmationRequest
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestConfirm") Route.User.RequestConfirm instance ToSchema Route.User.RequestConfirm
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseConfirm") Route.User.ResponseConfirm instance ToSchema Route.User.ResponseConfirm
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestNotifications") Route.User.RequestNotifications instance ToSchema Route.User.RequestNotifications
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseNotifications") Route.User.ResponseNotifications instance ToSchema Route.User.ResponseNotifications
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestProfile") Route.User.RequestProfile instance ToSchema Route.User.RequestProfile
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseProfile") Route.User.ResponseProfile instance ToSchema Route.User.ResponseProfile

deriving via A.CustomJSON (JSONSettings "MkRequest" "requestSpaceCreate") Route.Space.RequestSpaceCreate instance ToSchema Route.Space.RequestSpaceCreate
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseSpaceCreate") Route.Space.ResponseSpaceCreate instance ToSchema Route.Space.ResponseSpaceCreate
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestSpaceDelete") Route.Space.RequestSpaceDelete instance ToSchema Route.Space.RequestSpaceDelete
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseSpaceDelete") Route.Space.ResponseSpaceDelete instance ToSchema Route.Space.ResponseSpaceDelete
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestSpaceEdit") Route.Space.RequestSpaceEdit instance ToSchema Route.Space.RequestSpaceEdit
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseSpaceEdit") Route.Space.ResponseSpaceEdit instance ToSchema Route.Space.ResponseSpaceEdit
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestSpaceJoin") Route.Space.RequestSpaceJoin instance ToSchema Route.Space.RequestSpaceJoin
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseSpaceJoin") Route.Space.ResponseSpaceJoin instance ToSchema Route.Space.ResponseSpaceJoin
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestSpaceLeave") Route.Space.RequestSpaceLeave instance ToSchema Route.Space.RequestSpaceLeave
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseSpaceLeave") Route.Space.ResponseSpaceLeave instance ToSchema Route.Space.ResponseSpaceLeave
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestSpaceKick") Route.Space.RequestSpaceKick instance ToSchema Route.Space.RequestSpaceKick
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseSpaceKick") Route.Space.ResponseSpaceKick instance ToSchema Route.Space.ResponseSpaceKick
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestSpaceUserRole") Route.Space.RequestSpaceUserRole instance ToSchema Route.Space.RequestSpaceUserRole
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseSpaceUserRole") Route.Space.ResponseSpaceUserRole instance ToSchema Route.Space.ResponseSpaceUserRole
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestSpaceView") Route.Space.RequestSpaceView instance ToSchema Route.Space.RequestSpaceView
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseSpaceView") Route.Space.ResponseSpaceView instance ToSchema Route.Space.ResponseSpaceView
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseSpaceView403") Route.Space.ResponseSpaceView403 instance ToSchema Route.Space.ResponseSpaceView403
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestSpaceList") Route.Space.RequestSpaceList instance ToSchema Route.Space.RequestSpaceList
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseSpaceList") Route.Space.ResponseSpaceList instance ToSchema Route.Space.ResponseSpaceList
deriving via A.CustomJSON (JSONSettings "Mk" "spaceListSpace") Route.Space.SpaceListSpace instance ToSchema Route.Space.SpaceListSpace
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestRoleCreate") Route.Space.RequestRoleCreate instance ToSchema Route.Space.RequestRoleCreate
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseRoleCreate") Route.Space.ResponseRoleCreate instance ToSchema Route.Space.ResponseRoleCreate
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestRoleEdit") Route.Space.RequestRoleEdit instance ToSchema Route.Space.RequestRoleEdit
deriving via A.CustomJSON (JSONSettings "RoleEdit" "roleEditAccessibilityAndPassword") Route.Space.RoleEditAccessibilityAndPassword instance ToSchema Route.Space.RoleEditAccessibilityAndPassword
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseRoleEdit") Route.Space.ResponseRoleEdit instance ToSchema Route.Space.ResponseRoleEdit
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestRoleDelete") Route.Space.RequestRoleDelete instance ToSchema Route.Space.RequestRoleDelete
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseRoleDelete") Route.Space.ResponseRoleDelete instance ToSchema Route.Space.ResponseRoleDelete
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestDeskCreate") Route.Space.RequestDeskCreate instance ToSchema Route.Space.RequestDeskCreate
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseDeskCreate") Route.Space.ResponseDeskCreate instance ToSchema Route.Space.ResponseDeskCreate
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestDeskDelete") Route.Space.RequestDeskDelete instance ToSchema Route.Space.RequestDeskDelete
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseDeskDelete") Route.Space.ResponseDeskDelete instance ToSchema Route.Space.ResponseDeskDelete
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestDeskEdit") Route.Space.RequestDeskEdit instance ToSchema Route.Space.RequestDeskEdit
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseDeskEdit") Route.Space.ResponseDeskEdit instance ToSchema Route.Space.ResponseDeskEdit
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestDeskList") Route.Space.RequestDeskList instance ToSchema Route.Space.RequestDeskList
deriving via A.CustomJSON (JSONSettings "Mk" "deskWithInfo") Route.Space.DeskWithInfo instance ToSchema Route.Space.DeskWithInfo
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseDeskList") Route.Space.ResponseDeskList instance ToSchema Route.Space.ResponseDeskList
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestReservationCreate") Route.Reservation.RequestReservationCreate instance ToSchema Route.Reservation.RequestReservationCreate
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseReservationCreate") Route.Reservation.ResponseReservationCreate instance ToSchema Route.Reservation.ResponseReservationCreate
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestReservationCancel") Route.Reservation.RequestReservationCancel instance ToSchema Route.Reservation.RequestReservationCancel
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseReservationCancel") Route.Reservation.ResponseReservationCancel instance ToSchema Route.Reservation.ResponseReservationCancel
deriving via A.CustomJSON (JSONSettings "MkRequest" "requestReservationList") Route.Reservation.RequestReservationList instance ToSchema Route.Reservation.RequestReservationList
deriving via A.CustomJSON (JSONSettings "Mk" "reservationWithInfo") Route.Reservation.ReservationWithInfo instance ToSchema Route.Reservation.ReservationWithInfo
deriving via A.CustomJSON (JSONSettings "MkResponse" "responseReservationList") Route.Reservation.ResponseReservationList instance ToSchema Route.Reservation.ResponseReservationList

openapiJsonStdout :: IO ()
openapiJsonStdout :: IO ()
openapiJsonStdout = Text -> IO ()
TL.putStrLn (Text -> IO ()) -> Text -> IO ()
forall a b. (a -> b) -> a -> b
$ ByteString -> Text
TL.decodeUtf8 (ByteString -> Text) -> ByteString -> Text
forall a b. (a -> b) -> a -> b
$ OpenApi -> ByteString
forall a. ToJSON a => a -> ByteString
A.encode OpenApi
Mensam.Server.OpenApi.openapi

escapeCharsForPatternCharacterSet :: [Char] -> String
escapeCharsForPatternCharacterSet :: FilePath -> FilePath
escapeCharsForPatternCharacterSet = \case
  [] -> []
  Char
'-' : FilePath
chars -> Char
'\\' Char -> FilePath -> FilePath
forall a. a -> [a] -> [a]
: Char
'-' Char -> FilePath -> FilePath
forall a. a -> [a] -> [a]
: FilePath -> FilePath
escapeCharsForPatternCharacterSet FilePath
chars
  Char
'[' : FilePath
chars -> Char
'\\' Char -> FilePath -> FilePath
forall a. a -> [a] -> [a]
: Char
'[' Char -> FilePath -> FilePath
forall a. a -> [a] -> [a]
: FilePath -> FilePath
escapeCharsForPatternCharacterSet FilePath
chars
  Char
']' : FilePath
chars -> Char
'\\' Char -> FilePath -> FilePath
forall a. a -> [a] -> [a]
: Char
']' Char -> FilePath -> FilePath
forall a. a -> [a] -> [a]
: FilePath -> FilePath
escapeCharsForPatternCharacterSet FilePath
chars
  Char
'\\' : FilePath
chars -> Char
'\\' Char -> FilePath -> FilePath
forall a. a -> [a] -> [a]
: Char
'\\' Char -> FilePath -> FilePath
forall a. a -> [a] -> [a]
: FilePath -> FilePath
escapeCharsForPatternCharacterSet FilePath
chars
  Char
char : FilePath
chars -> Char
char Char -> FilePath -> FilePath
forall a. a -> [a] -> [a]
: FilePath -> FilePath
escapeCharsForPatternCharacterSet FilePath
chars