Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
module Io.Superposition.Command.ListGroupedDefaultConfigs (
ListGroupedDefaultConfigsError (..),
listGroupedDefaultConfigs
) where
import qualified Data.Aeson
import qualified Data.Maybe
import qualified Data.Text
import qualified GHC.Generics
import qualified GHC.Show
import qualified Io.Superposition.Model.InternalServerError
import qualified Io.Superposition.Model.ListGroupedDefaultConfigsInput
import qualified Io.Superposition.Model.ListGroupedDefaultConfigsOutput
import qualified Io.Superposition.SuperpositionClient
import qualified Io.Superposition.Utility

data ListGroupedDefaultConfigsError =
InternalServerError Io.Superposition.Model.InternalServerError.InternalServerError
| BuilderError Data.Text.Text
| DeSerializationError Io.Superposition.Utility.HttpMetadata Data.Text.Text
| UnexpectedError (Data.Maybe.Maybe Io.Superposition.Utility.HttpMetadata) Data.Text.Text
deriving (GHC.Generics.Generic, GHC.Show.Show)

instance Data.Aeson.ToJSON ListGroupedDefaultConfigsError
instance Io.Superposition.Utility.OperationError ListGroupedDefaultConfigsError where
mkBuilderError = BuilderError
mkDeSerializationError = DeSerializationError
mkUnexpectedError = UnexpectedError

getErrorParser status
| status == (Io.Superposition.Utility.expectedStatus @Io.Superposition.Model.InternalServerError.InternalServerError) = Just (fmap InternalServerError (Io.Superposition.Utility.responseParser @Io.Superposition.Model.InternalServerError.InternalServerError))
| otherwise = Nothing


listGroupedDefaultConfigs :: Io.Superposition.SuperpositionClient.SuperpositionClient -> Io.Superposition.Model.ListGroupedDefaultConfigsInput.ListGroupedDefaultConfigsInputBuilder () -> IO (Either ListGroupedDefaultConfigsError Io.Superposition.Model.ListGroupedDefaultConfigsOutput.ListGroupedDefaultConfigsOutput)
listGroupedDefaultConfigs client builder =
let endpoint = Io.Superposition.SuperpositionClient.endpointUri client
manager = Io.Superposition.SuperpositionClient.httpManager client
auth = Io.Superposition.SuperpositionClient.getAuth client
in Io.Superposition.Utility.runOperation endpoint manager auth (Io.Superposition.Model.ListGroupedDefaultConfigsInput.build builder)

Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
module Io.Superposition.Model.DefaultConfigSortOn (
DefaultConfigSortOn(..)
) where
import qualified Data.Aeson
import qualified Data.Eq
import qualified Data.Text
import qualified Data.Text.Encoding
import qualified GHC.Generics
import qualified GHC.Show
import qualified Io.Superposition.Utility

-- Enum implementation for DefaultConfigSortOn
data DefaultConfigSortOn =
KEY
| CREATED_AT
| LAST_MODIFIED_AT
deriving (
GHC.Generics.Generic,
Data.Eq.Eq,
GHC.Show.Show
)

instance Data.Aeson.ToJSON DefaultConfigSortOn where
toJSON KEY = Data.Aeson.String $ Data.Text.pack "key"
toJSON CREATED_AT = Data.Aeson.String $ Data.Text.pack "created_at"
toJSON LAST_MODIFIED_AT = Data.Aeson.String $ Data.Text.pack "last_modified_at"

instance Data.Aeson.FromJSON DefaultConfigSortOn where
parseJSON = Data.Aeson.withText "DefaultConfigSortOn" $ \v ->
case v of
"key" -> pure KEY
"created_at" -> pure CREATED_AT
"last_modified_at" -> pure LAST_MODIFIED_AT
_ -> fail $ "Unknown value for DefaultConfigSortOn: " <> Data.Text.unpack v



instance Io.Superposition.Utility.SerDe DefaultConfigSortOn where
serializeElement KEY = Data.Text.Encoding.encodeUtf8 $ Data.Text.pack "key"
serializeElement CREATED_AT = Data.Text.Encoding.encodeUtf8 $ Data.Text.pack "created_at"
serializeElement LAST_MODIFIED_AT = Data.Text.Encoding.encodeUtf8 $ Data.Text.pack "last_modified_at"
deSerializeElement bs = case Data.Text.Encoding.decodeUtf8 bs of
"key" -> Right KEY
"created_at" -> Right CREATED_AT
"last_modified_at" -> Right LAST_MODIFIED_AT
e -> Left ("Failed to de-serialize DefaultConfigSortOn, encountered unknown variant: " ++ (show bs))



Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
module Io.Superposition.Model.GroupedDefaultConfig (
GroupedDefaultConfig(..)
) where
import qualified Control.Applicative
import qualified Data.Aeson
import qualified Data.Eq
import qualified Data.Functor
import qualified Data.Text
import qualified GHC.Generics
import qualified GHC.Show
import qualified Io.Superposition.Model.DefaultConfigResponse
import qualified Io.Superposition.Utility

-- Union implementation for GroupedDefaultConfig
data GroupedDefaultConfig =
Group (Data.Text.Text)
| Config (Io.Superposition.Model.DefaultConfigResponse.DefaultConfigResponse)
deriving (
GHC.Generics.Generic,
GHC.Show.Show,
Data.Eq.Eq
)

instance Data.Aeson.ToJSON GroupedDefaultConfig where
toJSON (Group a) = Data.Aeson.object [ "Group" Data.Aeson..= a ]
toJSON (Config a) = Data.Aeson.object [ "Config" Data.Aeson..= a ]

instance Io.Superposition.Utility.SerializeBody GroupedDefaultConfig
instance Data.Aeson.FromJSON GroupedDefaultConfig where
parseJSON = Data.Aeson.withObject "GroupedDefaultConfig" $ \v ->
(Group Data.Functor.<$> v Data.Aeson..: "Group") Control.Applicative.<|>
(Config Data.Functor.<$> v Data.Aeson..: "Config") Control.Applicative.<|>
fail "Could not parse GroupedDefaultConfig. Expected an object with one of keys: Group, Config."



Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ module Io.Superposition.Model.ListDefaultConfigsInput (
setPage,
setAll',
setName,
setSortBy,
setSortOn,
setSearch,
build,
ListDefaultConfigsInputBuilder,
ListDefaultConfigsInput,
Expand All @@ -13,7 +16,10 @@ module Io.Superposition.Model.ListDefaultConfigsInput (
count,
page,
all',
name
name,
sort_by,
sort_on,
search
) where
import qualified Control.Applicative
import qualified Control.Monad.State.Strict
Expand All @@ -26,6 +32,8 @@ import qualified Data.Maybe
import qualified Data.Text
import qualified GHC.Generics
import qualified GHC.Show
import qualified Io.Superposition.Model.DefaultConfigSortOn
import qualified Io.Superposition.Model.SortBy
import qualified Io.Superposition.Utility
import qualified Network.HTTP.Types.Method

Expand All @@ -35,7 +43,10 @@ data ListDefaultConfigsInput = ListDefaultConfigsInput {
count :: Data.Maybe.Maybe Data.Int.Int32,
page :: Data.Maybe.Maybe Data.Int.Int32,
all' :: Data.Maybe.Maybe Bool,
name :: Data.Maybe.Maybe Data.Text.Text
name :: Data.Maybe.Maybe ([] Data.Text.Text),
sort_by :: Data.Maybe.Maybe Io.Superposition.Model.SortBy.SortBy,
sort_on :: Data.Maybe.Maybe Io.Superposition.Model.DefaultConfigSortOn.DefaultConfigSortOn,
search :: Data.Maybe.Maybe Data.Text.Text
} deriving (
GHC.Show.Show,
Data.Eq.Eq,
Expand All @@ -49,7 +60,10 @@ instance Data.Aeson.ToJSON ListDefaultConfigsInput where
"count" Data.Aeson..= count a,
"page" Data.Aeson..= page a,
"all" Data.Aeson..= all' a,
"name" Data.Aeson..= name a
"name" Data.Aeson..= name a,
"sort_by" Data.Aeson..= sort_by a,
"sort_on" Data.Aeson..= sort_on a,
"search" Data.Aeson..= search a
]


Expand All @@ -63,6 +77,9 @@ instance Data.Aeson.FromJSON ListDefaultConfigsInput where
Control.Applicative.<*> (v Data.Aeson..:? "page")
Control.Applicative.<*> (v Data.Aeson..:? "all")
Control.Applicative.<*> (v Data.Aeson..:? "name")
Control.Applicative.<*> (v Data.Aeson..:? "sort_by")
Control.Applicative.<*> (v Data.Aeson..:? "sort_on")
Control.Applicative.<*> (v Data.Aeson..:? "search")



Expand All @@ -73,7 +90,10 @@ data ListDefaultConfigsInputBuilderState = ListDefaultConfigsInputBuilderState {
countBuilderState :: Data.Maybe.Maybe Data.Int.Int32,
pageBuilderState :: Data.Maybe.Maybe Data.Int.Int32,
all'BuilderState :: Data.Maybe.Maybe Bool,
nameBuilderState :: Data.Maybe.Maybe Data.Text.Text
nameBuilderState :: Data.Maybe.Maybe ([] Data.Text.Text),
sort_byBuilderState :: Data.Maybe.Maybe Io.Superposition.Model.SortBy.SortBy,
sort_onBuilderState :: Data.Maybe.Maybe Io.Superposition.Model.DefaultConfigSortOn.DefaultConfigSortOn,
searchBuilderState :: Data.Maybe.Maybe Data.Text.Text
} deriving (
GHC.Generics.Generic
)
Expand All @@ -85,7 +105,10 @@ defaultBuilderState = ListDefaultConfigsInputBuilderState {
countBuilderState = Data.Maybe.Nothing,
pageBuilderState = Data.Maybe.Nothing,
all'BuilderState = Data.Maybe.Nothing,
nameBuilderState = Data.Maybe.Nothing
nameBuilderState = Data.Maybe.Nothing,
sort_byBuilderState = Data.Maybe.Nothing,
sort_onBuilderState = Data.Maybe.Nothing,
searchBuilderState = Data.Maybe.Nothing
}

type ListDefaultConfigsInputBuilder = Control.Monad.State.Strict.State ListDefaultConfigsInputBuilderState
Expand All @@ -110,10 +133,22 @@ setAll' :: Data.Maybe.Maybe Bool -> ListDefaultConfigsInputBuilder ()
setAll' value =
Control.Monad.State.Strict.modify (\s -> (s { all'BuilderState = value }))

setName :: Data.Maybe.Maybe Data.Text.Text -> ListDefaultConfigsInputBuilder ()
setName :: Data.Maybe.Maybe ([] Data.Text.Text) -> ListDefaultConfigsInputBuilder ()
setName value =
Control.Monad.State.Strict.modify (\s -> (s { nameBuilderState = value }))

setSortBy :: Data.Maybe.Maybe Io.Superposition.Model.SortBy.SortBy -> ListDefaultConfigsInputBuilder ()
setSortBy value =
Control.Monad.State.Strict.modify (\s -> (s { sort_byBuilderState = value }))

setSortOn :: Data.Maybe.Maybe Io.Superposition.Model.DefaultConfigSortOn.DefaultConfigSortOn -> ListDefaultConfigsInputBuilder ()
setSortOn value =
Control.Monad.State.Strict.modify (\s -> (s { sort_onBuilderState = value }))

setSearch :: Data.Maybe.Maybe Data.Text.Text -> ListDefaultConfigsInputBuilder ()
setSearch value =
Control.Monad.State.Strict.modify (\s -> (s { searchBuilderState = value }))

build :: ListDefaultConfigsInputBuilder () -> Data.Either.Either Data.Text.Text ListDefaultConfigsInput
build builder = do
let (_, st) = Control.Monad.State.Strict.runState builder defaultBuilderState
Expand All @@ -123,13 +158,19 @@ build builder = do
page' <- Data.Either.Right (pageBuilderState st)
all'' <- Data.Either.Right (all'BuilderState st)
name' <- Data.Either.Right (nameBuilderState st)
sort_by' <- Data.Either.Right (sort_byBuilderState st)
sort_on' <- Data.Either.Right (sort_onBuilderState st)
search' <- Data.Either.Right (searchBuilderState st)
Data.Either.Right (ListDefaultConfigsInput {
workspace_id = workspace_id',
org_id = org_id',
count = count',
page = page',
all' = all'',
name = name'
name = name',
sort_by = sort_by',
sort_on = sort_on',
search = search'
})


Expand All @@ -140,9 +181,12 @@ instance Io.Superposition.Utility.IntoRequestBuilder ListDefaultConfigsInput whe
"default-config"
]
Io.Superposition.Utility.serQuery "all" (all' self)
Io.Superposition.Utility.serQuery "search" (search self)
Io.Superposition.Utility.serQuery "sort_on" (sort_on self)
Io.Superposition.Utility.serQuery "count" (count self)
Io.Superposition.Utility.serQuery "name" (name self)
Io.Superposition.Utility.serQuery "page" (page self)
Io.Superposition.Utility.serQuery "sort_by" (sort_by self)
Io.Superposition.Utility.serHeader "x-workspace" (workspace_id self)
Io.Superposition.Utility.serHeader "x-org-id" (org_id self)

Expand Down
Loading