2022-03-16 03:39:21 +03:00
|
|
|
{-# LANGUAGE TemplateHaskell #-}
|
2022-05-26 17:05:13 +03:00
|
|
|
{-# LANGUAGE UndecidableInstances #-}
|
2022-03-16 03:39:21 +03:00
|
|
|
|
2021-11-04 19:08:33 +03:00
|
|
|
module Hasura.RQL.IR.Update
|
2021-11-25 00:39:42 +03:00
|
|
|
( AnnotatedUpdate,
|
|
|
|
AnnotatedUpdateG (..),
|
2022-03-10 09:17:48 +03:00
|
|
|
auTable,
|
2023-01-10 04:54:40 +03:00
|
|
|
auUpdatePermissions,
|
2022-03-10 09:17:48 +03:00
|
|
|
auCheck,
|
2023-01-10 04:54:40 +03:00
|
|
|
auUpdateVariant,
|
2022-03-10 09:17:48 +03:00
|
|
|
auOutput,
|
|
|
|
auAllCols,
|
2022-07-19 09:55:42 +03:00
|
|
|
auNamingConvention,
|
2021-11-04 19:08:33 +03:00
|
|
|
)
|
|
|
|
where
|
2020-10-29 19:58:13 +03:00
|
|
|
|
2022-03-10 09:17:48 +03:00
|
|
|
import Control.Lens.TH (makeLenses)
|
2021-09-24 01:56:37 +03:00
|
|
|
import Data.Kind (Type)
|
2022-07-19 09:55:42 +03:00
|
|
|
import Hasura.GraphQL.Schema.NamingCase (NamingCase)
|
2021-09-24 01:56:37 +03:00
|
|
|
import Hasura.Prelude
|
|
|
|
import Hasura.RQL.IR.BoolExp
|
|
|
|
import Hasura.RQL.IR.Returning
|
|
|
|
import Hasura.RQL.Types.Backend
|
|
|
|
import Hasura.RQL.Types.Column
|
|
|
|
import Hasura.SQL.Backend
|
|
|
|
|
2023-01-10 04:54:40 +03:00
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
2021-12-07 16:12:02 +03:00
|
|
|
data AnnotatedUpdateG (b :: BackendType) (r :: Type) v = AnnotatedUpdateG
|
2022-08-01 12:32:04 +03:00
|
|
|
{ _auTable :: TableName b,
|
2023-01-10 04:54:40 +03:00
|
|
|
_auUpdatePermissions :: AnnBoolExp b v,
|
2022-08-01 12:32:04 +03:00
|
|
|
_auCheck :: AnnBoolExp b v,
|
2023-01-10 04:54:40 +03:00
|
|
|
_auUpdateVariant :: UpdateVariant b v,
|
2021-09-24 01:56:37 +03:00
|
|
|
-- we don't prepare the arguments for returning
|
|
|
|
-- however the session variable can still be
|
|
|
|
-- converted as desired
|
2022-05-26 17:05:13 +03:00
|
|
|
|
|
|
|
-- | Selection set
|
2022-08-01 12:32:04 +03:00
|
|
|
_auOutput :: MutationOutputG b r v,
|
|
|
|
_auAllCols :: [ColumnInfo b],
|
|
|
|
_auNamingConvention :: Maybe NamingCase
|
2021-09-24 01:56:37 +03:00
|
|
|
}
|
2022-05-26 17:05:13 +03:00
|
|
|
deriving stock (Functor, Foldable, Traversable)
|
|
|
|
|
|
|
|
deriving stock instance
|
|
|
|
( Backend b,
|
2023-01-10 04:54:40 +03:00
|
|
|
Show v,
|
|
|
|
Show r,
|
|
|
|
Show (AnnBoolExp b v),
|
|
|
|
Show (UpdateVariant b v),
|
|
|
|
Show (MutationOutputG b r v)
|
2022-05-26 17:05:13 +03:00
|
|
|
) =>
|
2023-01-10 04:54:40 +03:00
|
|
|
Show (AnnotatedUpdateG b r v)
|
2022-05-26 17:05:13 +03:00
|
|
|
|
|
|
|
deriving stock instance
|
|
|
|
( Backend b,
|
2023-01-10 04:54:40 +03:00
|
|
|
Eq v,
|
|
|
|
Eq r,
|
|
|
|
Eq (AnnBoolExp b v),
|
|
|
|
Eq (UpdateVariant b v),
|
|
|
|
Eq (MutationOutputG b r v)
|
2022-05-26 17:05:13 +03:00
|
|
|
) =>
|
2023-01-10 04:54:40 +03:00
|
|
|
Eq (AnnotatedUpdateG b r v)
|
2020-10-29 19:58:13 +03:00
|
|
|
|
2021-12-07 16:12:02 +03:00
|
|
|
type AnnotatedUpdate b = AnnotatedUpdateG b Void (SQLExpression b)
|
2022-03-10 09:17:48 +03:00
|
|
|
|
|
|
|
$(makeLenses ''AnnotatedUpdateG)
|