253 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
			
		
		
	
	
			253 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
 | 
						|
 | 
						|
# ENUMS
 | 
						|
 | 
						|
enum FileType {
 | 
						|
  binary
 | 
						|
  image
 | 
						|
}
 | 
						|
 | 
						|
enum RightRole {
 | 
						|
  read
 | 
						|
  write
 | 
						|
  manage
 | 
						|
}
 | 
						|
 | 
						|
# TYPES
 | 
						|
 | 
						|
type KeyValuePair {
 | 
						|
  key: String!
 | 
						|
  value: String!
 | 
						|
}
 | 
						|
input KeyValuePairInput {
 | 
						|
  key: String!
 | 
						|
  value: String!
 | 
						|
}
 | 
						|
 | 
						|
type DefaultResponse {
 | 
						|
  responseResult: ResponseStatus
 | 
						|
}
 | 
						|
 | 
						|
type ResponseStatus {
 | 
						|
  succeeded: Boolean!
 | 
						|
  errorCode: Int!
 | 
						|
  slug: String!
 | 
						|
  message: String
 | 
						|
}
 | 
						|
 | 
						|
type Comment {
 | 
						|
  id: Int!
 | 
						|
  createdAt: Date
 | 
						|
  updatedAt: Date
 | 
						|
  content: String
 | 
						|
  document: Document!
 | 
						|
  author: User!
 | 
						|
}
 | 
						|
 | 
						|
type Document {
 | 
						|
  id: Int!
 | 
						|
  createdAt: Date
 | 
						|
  updatedAt: Date
 | 
						|
  path: String!
 | 
						|
  title: String!
 | 
						|
  subtitle: String
 | 
						|
  parentPath: String
 | 
						|
  parentTitle: String
 | 
						|
  isDirectory: Boolean!
 | 
						|
  isEntry: Boolean!
 | 
						|
  searchContent: String
 | 
						|
  comments: [Comment]
 | 
						|
  tags: [Tag]
 | 
						|
}
 | 
						|
 | 
						|
type File {
 | 
						|
  id: Int!
 | 
						|
  createdAt: Date
 | 
						|
  updatedAt: Date
 | 
						|
  category: FileType!
 | 
						|
  mime: String!
 | 
						|
  extra: String
 | 
						|
  filename: String!
 | 
						|
  basename: String!
 | 
						|
  filesize: Int!
 | 
						|
  folder: Folder
 | 
						|
}
 | 
						|
 | 
						|
type Folder {
 | 
						|
  id: Int!
 | 
						|
  createdAt: Date
 | 
						|
  updatedAt: Date
 | 
						|
  name: String!
 | 
						|
  files: [File]
 | 
						|
}
 | 
						|
 | 
						|
type Right {
 | 
						|
  id: Int!
 | 
						|
  createdAt: Date
 | 
						|
  updatedAt: Date
 | 
						|
  path: String!
 | 
						|
  role: RightRole!
 | 
						|
  exact: Boolean!
 | 
						|
  allow: Boolean!
 | 
						|
  group: Group!
 | 
						|
}
 | 
						|
 | 
						|
type Setting {
 | 
						|
  id: Int!
 | 
						|
  createdAt: Date
 | 
						|
  updatedAt: Date
 | 
						|
  key: String!
 | 
						|
  config: String!
 | 
						|
}
 | 
						|
 | 
						|
# Tags are attached to one or more documents
 | 
						|
type Tag {
 | 
						|
  id: Int!
 | 
						|
  createdAt: Date
 | 
						|
  updatedAt: Date
 | 
						|
  key: String!
 | 
						|
  documents: [Document]
 | 
						|
}
 | 
						|
 | 
						|
type Translation {
 | 
						|
  key: String!
 | 
						|
  value: String!
 | 
						|
}
 | 
						|
 | 
						|
type OperationResult {
 | 
						|
  succeeded: Boolean!
 | 
						|
  message: String
 | 
						|
  data: String
 | 
						|
}
 | 
						|
 | 
						|
# Query (Read)
 | 
						|
type Query {
 | 
						|
  comments(id: Int): [Comment]
 | 
						|
  documents(id: Int, path: String): [Document]
 | 
						|
  files(id: Int): [File]
 | 
						|
  folders(id: Int, name: String): [Folder]
 | 
						|
  rights(id: Int): [Right]
 | 
						|
  settings(key: String): [Setting]
 | 
						|
  tags(key: String): [Tag]
 | 
						|
  translations(locale: String!, namespace: String!): [Translation]
 | 
						|
}
 | 
						|
 | 
						|
# Mutations (Create, Update, Delete)
 | 
						|
type Mutation {
 | 
						|
  addRightToGroup(
 | 
						|
    groupId: Int!
 | 
						|
    path: String!
 | 
						|
    role: RightRole!
 | 
						|
    exact: Boolean!
 | 
						|
    allow: Boolean!
 | 
						|
  ): Right
 | 
						|
 | 
						|
  assignTagToDocument(
 | 
						|
    tagId: Int!
 | 
						|
    documentId: Int!
 | 
						|
  ): OperationResult
 | 
						|
 | 
						|
  createComment(
 | 
						|
    userId: Int!
 | 
						|
    documentId: Int!
 | 
						|
    content: String!
 | 
						|
  ): Comment
 | 
						|
 | 
						|
  createDocument(
 | 
						|
    path: String!
 | 
						|
    title: String!
 | 
						|
    subtitle: String
 | 
						|
  ): Document
 | 
						|
 | 
						|
  createFolder(
 | 
						|
    name: String!
 | 
						|
  ): Folder
 | 
						|
 | 
						|
  createTag(
 | 
						|
    name: String!
 | 
						|
  ): Tag
 | 
						|
 | 
						|
  deleteComment(
 | 
						|
    id: Int!
 | 
						|
  ): OperationResult
 | 
						|
 | 
						|
  deleteDocument(
 | 
						|
    id: Int!
 | 
						|
  ): OperationResult
 | 
						|
 | 
						|
  deleteFile(
 | 
						|
    id: Int!
 | 
						|
  ): OperationResult
 | 
						|
 | 
						|
  deleteFolder(
 | 
						|
    id: Int!
 | 
						|
  ): OperationResult
 | 
						|
 | 
						|
  deleteTag(
 | 
						|
    id: Int!
 | 
						|
  ): OperationResult
 | 
						|
 | 
						|
  modifyComment(
 | 
						|
    id: Int!
 | 
						|
    content: String!
 | 
						|
  ): Document
 | 
						|
 | 
						|
  modifyDocument(
 | 
						|
    id: Int!
 | 
						|
    title: String
 | 
						|
    subtitle: String
 | 
						|
  ): Document
 | 
						|
 | 
						|
  modifyRight(
 | 
						|
    id: Int!
 | 
						|
    path: String
 | 
						|
    role: RightRole
 | 
						|
    exact: Boolean
 | 
						|
    allow: Boolean
 | 
						|
  ): Right
 | 
						|
 | 
						|
  moveDocument(
 | 
						|
    id: Int!
 | 
						|
    path: String!
 | 
						|
  ): OperationResult
 | 
						|
 | 
						|
  moveFile(
 | 
						|
    id: Int!
 | 
						|
    folderId: Int!
 | 
						|
  ): OperationResult
 | 
						|
 | 
						|
  renameFile(
 | 
						|
    id: Int!
 | 
						|
    name: String!
 | 
						|
  ): OperationResult
 | 
						|
 | 
						|
  renameFolder(
 | 
						|
    id: Int!
 | 
						|
    name: String!
 | 
						|
  ): OperationResult
 | 
						|
 | 
						|
  renameTag(
 | 
						|
    id: Int!
 | 
						|
    key: String!
 | 
						|
  ): OperationResult
 | 
						|
 | 
						|
  removeTagFromDocument(
 | 
						|
    tagId: Int!
 | 
						|
    documentId: Int!
 | 
						|
  ): OperationResult
 | 
						|
 | 
						|
  removeRightFromGroup(
 | 
						|
    rightId: Int!
 | 
						|
  ): OperationResult
 | 
						|
 | 
						|
  setConfigEntry(
 | 
						|
    key: String!
 | 
						|
    value: String!
 | 
						|
  ): OperationResult
 | 
						|
 | 
						|
  uploadFile(
 | 
						|
    category: FileType!
 | 
						|
    filename: String!
 | 
						|
  ): File
 | 
						|
}
 |