74 lines
1.2 KiB
GraphQL
Executable File
74 lines
1.2 KiB
GraphQL
Executable File
# Main Schema
|
|
schema {
|
|
query: Query;
|
|
}
|
|
|
|
scalar Date;
|
|
|
|
# Simple type to contain all scalar types
|
|
type AllTypes {
|
|
# Field Description for String
|
|
testString: String;
|
|
# Field Description for Int
|
|
testInt: Int;
|
|
# Field Description for ID
|
|
testID: ID;
|
|
# Field Description for Boolean
|
|
testBoolean: Boolean;
|
|
# Field Description for Float
|
|
testFloat: Float;
|
|
}
|
|
|
|
interface ISearchable {
|
|
searchPreview: String!;
|
|
}
|
|
|
|
union ProductTypes = Movie | Book;
|
|
|
|
# Testing enum
|
|
enum MovieGenere {
|
|
ACTION
|
|
COMEDY
|
|
THRILLER
|
|
DRAMA
|
|
}
|
|
|
|
# Testing Input
|
|
input SearchByGenere {
|
|
before: Date;
|
|
after: Date;
|
|
genere: MovieGenere!;
|
|
}
|
|
|
|
# Testing Interface
|
|
type Movie implements ISearchable {
|
|
id: ID!;
|
|
searchPreview: String!;
|
|
rentPrice: Float;
|
|
publishDate: Date;
|
|
genere: MovieGenere;
|
|
cast: [String];
|
|
}
|
|
|
|
# Testing Interface
|
|
type Book implements ISearchable {
|
|
id: ID!;
|
|
searchPreview: String!;
|
|
price: Float;
|
|
publishDate: Date;
|
|
authors: [String];
|
|
}
|
|
|
|
type Query {
|
|
testString: String;
|
|
testDate; Date;
|
|
allTypes: AllTypes;
|
|
allProducts: [ProductTypes];
|
|
|
|
# searches only movies by genere with sophisticated argument
|
|
searchMovieByGenere(searchObject: SearchByGenere!): [Movie];
|
|
|
|
# Searchs all products by text string
|
|
searchProduct(text: String!): [ISearchable];
|
|
}
|