mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-19 05:21:47 +03:00
b9ee669ee1
### Description This PR improves the `Collect` module by re-ordering the functions to make clear what is public API and what is internal implementation. Furthermore, it makes use of `traverseOf` and `traverseFields` to reduce duplication. To do so, it also introduces a few more lenses in the rest of the codebase, and uses this opportunity to harmonize some structures that were not following our naming convention. While the diff is massive, a lot of it is just code moving around; the file is now divided into separate sections: - entry points: IR types for which we want to run the collection - internal monadic structure - internal traversals: functions that do nothing but drill down further - actual transformations: the three cases where we do actually have work to do: selection sets on which we do want to insert join columns, extract remote relationships... those functions are left unchanged by this PR - internal helpers PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3863 GitOrigin-RevId: f7cbecfae9eed9737b62acfa5848bfcf9d4651f6
35 lines
847 B
Haskell
35 lines
847 B
Haskell
{-# LANGUAGE UndecidableInstances #-}
|
|
|
|
module Hasura.RQL.IR.Delete
|
|
( AnnDel,
|
|
AnnDelG (..),
|
|
adTable,
|
|
adWhere,
|
|
adOutput,
|
|
adAllCols,
|
|
)
|
|
where
|
|
|
|
import Control.Lens.TH (makeLenses)
|
|
import Data.Kind (Type)
|
|
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
|
|
|
|
data AnnDelG (b :: BackendType) (r :: Type) v = AnnDel
|
|
{ _adTable :: TableName b,
|
|
_adWhere :: (AnnBoolExp b v, AnnBoolExp b v),
|
|
_adOutput :: MutationOutputG b r v,
|
|
_adAllCols :: [ColumnInfo b]
|
|
}
|
|
deriving (Functor, Foldable, Traversable)
|
|
|
|
type AnnDel b = AnnDelG b Void (SQLExpression b)
|
|
|
|
deriving instance (Show (MutationOutputG b r a), Backend b, Show (BooleanOperators b a), Show a) => Show (AnnDelG b r a)
|
|
|
|
$(makeLenses ''AnnDelG)
|