graphql-engine/server/tests-py/queries/graphql_query/custom_schema/setup.yaml
Rakesh Emmadi 9bd5826020 allow customising graphql schema for a table (close #981) (#2509)
* allow customizing GraphQL root field names, close #981

* document v2 track_table API in reference

* support customising column field names in GraphQL schema

* [docs] add custom column fields doc in API reference

* add tests

* rename 'ColField' to 'ColumnField'

* embed column's graphql field in 'PGColumnInfo'

-> Value constructor of 'PGCol' is not exposed
-> Using 'parseJSON' to construct 'PGCol' in 'FromJSON' instances

* avoid using 'Maybe TableConfig'

* refactors & 'custom_column_fields' -> 'custom_column_names'

* cli-test: add configuration field in metadata export test

* update expected keys in `FromJSON` instance of `TableMeta`

* use `buildSchemaCacheFor` to update configuration in v2 track_table

* remove 'GraphQLName' type and use 'isValidName' exposed from parser lib

* point graphql-parser-hs library git repo to hasura

* support 'set_table_custom_fields' query API & added docs and tests
2019-09-19 10:17:36 +05:30

78 lines
1.5 KiB
YAML

type: bulk
args:
- type: run_sql
args:
sql: |
-- create tables
CREATE TABLE author(
id SERIAL PRIMARY KEY,
name TEXT UNIQUE
);
CREATE TABLE article(
id SERIAL PRIMARY KEY,
title TEXT,
content TEXT,
author_id INTEGER REFERENCES author(id)
);
-- insert data
INSERT INTO author (name)
VALUES ('Author 1'), ('Author 2')
;
INSERT INTO article (title, content, author_id)
VALUES
( 'Article 1'
, 'Content for Article 1'
, 1
),
( 'Article 2'
, 'Content for Article 2'
, 1
),
( 'Article 3'
, 'Content for Article 3'
, 2
)
;
- type: track_table
version: 2
args:
table: author
configuration:
custom_root_fields:
select: Authors
select_by_pk: Author
select_aggregate: AuthorAgg
custom_column_names:
id: AuthorId
- type: track_table
version: 2
args:
table: article
configuration:
custom_root_fields:
select: Articles
select_by_pk: Article
select_aggregate: ArticleAgg
custom_column_names:
id: ArticleId
author_id: AuthorId
- type: create_object_relationship
args:
table: article
name: author
using:
foreign_key_constraint_on: author_id
- type: create_array_relationship
args:
table: author
name: articles
using:
foreign_key_constraint_on:
table: article
column: author_id