diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-11-18 09:06:43 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-11-18 09:06:43 +0000 |
commit | 5333cb6c7c960aac58af40c898c87d050d829383 (patch) | |
tree | 79cac8f3f0cf63340b3c0c305d2d1e9780f43ea6 /doc/development/api_graphql_styleguide.md | |
parent | 44baf08d4ff4b0d32fecfded843257e2fc49a63c (diff) | |
download | gitlab-ce-5333cb6c7c960aac58af40c898c87d050d829383.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'doc/development/api_graphql_styleguide.md')
-rw-r--r-- | doc/development/api_graphql_styleguide.md | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/doc/development/api_graphql_styleguide.md b/doc/development/api_graphql_styleguide.md index 7161caf19ed..b0d94511c6e 100644 --- a/doc/development/api_graphql_styleguide.md +++ b/doc/development/api_graphql_styleguide.md @@ -548,6 +548,32 @@ found, we should raise a `Gitlab::Graphql::Errors::ResourceNotAvailable` error. Which will be correctly rendered to the clients. +## Gitlab's custom scalars + +### `Types::TimeType` + +[`Types::TimeType`](https://gitlab.com/gitlab-org/gitlab/blob/master/app%2Fgraphql%2Ftypes%2Ftime_type.rb) +must be used as the type for all fields and arguments that deal with Ruby +`Time` and `DateTime` objects. + +The type is +[a custom scalar](https://github.com/rmosolgo/graphql-ruby/blob/master/guides/type_definitions/scalars.md#custom-scalars) +that: + +- Converts Ruby's `Time` and `DateTime` objects into standardized + ISO-8601 formatted strings, when used as the type for our GraphQL fields. +- Converts ISO-8601 formatted time strings into Ruby `Time` objects, + when used as the type for our GraphQL arguments. + +This allows our GraphQL API to have a standardized way that it presents time +and handles time inputs. + +Example: + +```ruby +field :created_at, Types::TimeType, null: false, description: 'Timestamp of when the issue was created' +``` + ## Testing _full stack_ tests for a graphql query or mutation live in |