123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- # SCALARS
- scalar Date
- # ENUMS
- enum UserRole {
- guest
- user
- admin
- }
- enum FileType {
- binary
- image
- }
- enum RightRole {
- read
- write
- manage
- }
- # INTERFACES
- interface Base {
- id: Int!
- createdOn: Date
- updatedOn: Date
- }
- # TYPES
- type Comment implements Base {
- id: Int!
- createdOn: Date
- updatedOn: Date
- content: String
- document: Document!
- author: User!
- }
- type Document implements Base {
- id: Int!
- createdOn: Date
- updatedOn: Date
- path: String!
- title: String!
- subtitle: String
- parentPath: String
- parentTitle: String
- isDirectory: Boolean!
- isEntry: Boolean!
- searchContent: String
- tags: [Tag]
- }
- type File implements Base {
- id: Int!
- createdOn: Date
- updatedOn: Date
- category: FileType!
- mime: String!
- extra: String
- filename: String!
- basename: String!
- filesize: Int!
- folder: Folder
- }
- type Folder implements Base {
- id: Int!
- createdOn: Date
- updatedOn: Date
- name: String!
- }
- type Group implements Base {
- id: Int!
- createdOn: Date
- updatedOn: Date
- name: String!
- users: [User]
- rights: [Right]
- }
- type Right implements Base {
- id: Int!
- createdOn: Date
- updatedOn: Date
- path: String!
- role: RightRole!
- exact: Boolean!
- allow: Boolean!
- }
- type Setting implements Base {
- id: Int!
- createdOn: Date
- updatedOn: Date
- key: String!
- config: String!
- }
- type Tag implements Base {
- id: Int!
- createdOn: Date
- updatedOn: Date
- key: String!
- }
- type User implements Base {
- id: Int!
- createdOn: Date
- updatedOn: Date
- email: String!
- provider: String
- providerId: String
- name: String
- role: UserRole!
- groups: [Group]
- }
- # QUERY
- type Query {
- comments(id: Int): [Comment]
- documents(id: Int, path: String): [Document]
- files(id: Int): [File]
- folders(id: Int, name: String): [Folder]
- groups(id: Int, name: String): [Group]
- rights(id: Int): [Right]
- settings(key: String): [Setting]
- tags(key: String): [Tag]
- users(id: Int, email: String, provider: String, providerId: String, role: UserRole): [User]
- }
|