wikijs-fork/server/graph/schemas/page.graphql

339 lines
7.1 KiB
GraphQL
Raw Permalink Normal View History

2018-05-20 22:50:51 +00:00
# ===============================================
# PAGES
# ===============================================
extend type Query {
pages: PageQuery
}
extend type Mutation {
pages: PageMutation
}
# -----------------------------------------------
# QUERIES
# -----------------------------------------------
type PageQuery {
2018-11-25 06:28:20 +00:00
history(
id: Int!
offsetPage: Int
offsetSize: Int
2020-02-24 04:53:27 +00:00
): PageHistoryResult @auth(requires: ["manage:system", "read:history"])
version(
pageId: Int!
versionId: Int!
): PageVersion @auth(requires: ["manage:system", "read:history"])
2019-03-09 05:51:02 +00:00
search(
query: String!
path: String
locale: String
): PageSearchResponse! @auth(requires: ["manage:system", "read:pages"])
list(
limit: Int
orderBy: PageOrderBy
orderByDirection: PageOrderByDirection
tags: [String!]
locale: String
2020-04-06 03:48:13 +00:00
creatorId: Int
authorId: Int
): [PageListItem!]! @auth(requires: ["manage:system", "read:pages"])
2019-07-02 05:48:19 +00:00
single(
id: Int!
2020-06-20 05:11:05 +00:00
): Page @auth(requires: ["read:pages", "manage:system"])
singleByPath(
path: String!
locale: String!
): Page @auth(requires: ["read:pages", "manage:system"])
tags: [PageTag]! @auth(requires: ["manage:system", "read:pages"])
2019-10-08 03:38:06 +00:00
searchTags(
query: String!
): [String]! @auth(requires: ["manage:system", "read:pages"])
2019-10-08 03:38:06 +00:00
tree(
2020-01-05 20:04:16 +00:00
path: String
parent: Int
2019-10-08 03:38:06 +00:00
mode: PageTreeMode!
locale: String!
2020-04-12 22:05:48 +00:00
includeAncestors: Boolean
2019-10-08 03:38:06 +00:00
): [PageTreeItem] @auth(requires: ["manage:system", "read:pages"])
2020-01-05 20:04:16 +00:00
links(
locale: String!
): [PageLinkItem] @auth(requires: ["manage:system", "read:pages"])
2020-03-02 05:43:19 +00:00
checkConflicts(
id: Int!
checkoutDate: Date!
): Boolean! @auth(requires: ["write:pages", "manage:pages", "manage:system"])
2020-03-21 23:18:08 +00:00
conflictLatest(
id: Int!
): PageConflictLatest! @auth(requires: ["write:pages", "manage:pages", "manage:system"])
2018-05-20 22:50:51 +00:00
}
# -----------------------------------------------
# MUTATIONS
# -----------------------------------------------
type PageMutation {
create(
content: String!
description: String!
editor: String!
2018-07-22 04:29:39 +00:00
isPublished: Boolean!
isPrivate: Boolean!
2018-07-22 04:29:39 +00:00
locale: String!
2018-05-20 22:50:51 +00:00
path: String!
publishEndDate: Date
publishStartDate: Date
2020-06-20 05:11:05 +00:00
scriptCss: String
scriptJs: String
tags: [String]!
2018-05-20 22:50:51 +00:00
title: String!
2018-10-14 21:38:39 +00:00
): PageResponse @auth(requires: ["write:pages", "manage:pages", "manage:system"])
2018-05-20 22:50:51 +00:00
update(
id: Int!
content: String
2018-07-22 04:29:39 +00:00
description: String
editor: String
isPrivate: Boolean
2018-07-22 04:29:39 +00:00
isPublished: Boolean
locale: String
path: String
publishEndDate: Date
publishStartDate: Date
2020-06-20 05:11:05 +00:00
scriptCss: String
scriptJs: String
2018-07-22 04:29:39 +00:00
tags: [String]
title: String
2019-10-13 23:59:50 +00:00
): PageResponse @auth(requires: ["write:pages", "manage:pages", "manage:system"])
2021-04-02 04:39:11 +00:00
convert(
id: Int!
editor: String!
): DefaultResponse @auth(requires: ["write:pages", "manage:pages", "manage:system"])
2019-10-13 23:59:50 +00:00
move(
id: Int!
destinationPath: String!
destinationLocale: String!
): DefaultResponse @auth(requires: ["manage:pages", "manage:system"])
2018-05-20 22:50:51 +00:00
delete(
id: Int!
2018-10-14 21:38:39 +00:00
): DefaultResponse @auth(requires: ["delete:pages", "manage:system"])
2019-07-06 21:06:42 +00:00
2020-02-09 05:49:32 +00:00
deleteTag(
id: Int!
): DefaultResponse @auth(requires: ["manage:system"])
updateTag(
id: Int!
tag: String!
title: String!
): DefaultResponse @auth(requires: ["manage:system"])
2019-07-06 21:06:42 +00:00
flushCache: DefaultResponse @auth(requires: ["manage:system"])
2019-07-14 17:21:33 +00:00
migrateToLocale(
sourceLocale: String!
targetLocale: String!
): PageMigrationResponse @auth(requires: ["manage:system"])
2019-10-13 23:59:50 +00:00
rebuildTree: DefaultResponse @auth(requires: ["manage:system"])
render(
id: Int!
): DefaultResponse @auth(requires: ["manage:system"])
2020-03-01 04:40:07 +00:00
restore(
pageId: Int!
versionId: Int!
): DefaultResponse @auth(requires: ["write:pages", "manage:pages", "manage:system"])
2020-09-06 03:32:00 +00:00
purgeHistory (
olderThan: String!
): DefaultResponse @auth(requires: ["manage:system"])
2018-05-20 22:50:51 +00:00
}
# -----------------------------------------------
# TYPES
# -----------------------------------------------
type PageResponse {
responseResult: ResponseStatus!
page: Page
}
type PageMigrationResponse {
responseResult: ResponseStatus!
count: Int
}
2018-05-20 22:50:51 +00:00
type Page {
id: Int!
2019-07-02 05:48:19 +00:00
path: String!
hash: String!
title: String!
description: String!
2020-06-20 05:11:05 +00:00
isPrivate: Boolean! @auth(requires: ["write:pages", "manage:system"])
isPublished: Boolean! @auth(requires: ["write:pages", "manage:system"])
privateNS: String @auth(requires: ["write:pages", "manage:system"])
publishStartDate: Date! @auth(requires: ["write:pages", "manage:system"])
publishEndDate: Date! @auth(requires: ["write:pages", "manage:system"])
tags: [PageTag]!
2020-06-20 05:11:05 +00:00
content: String! @auth(requires: ["read:source", "write:pages", "manage:system"])
2019-07-02 05:48:19 +00:00
render: String
toc: String
contentType: String!
createdAt: Date!
updatedAt: Date!
2020-06-20 05:11:05 +00:00
editor: String! @auth(requires: ["write:pages", "manage:system"])
2019-07-02 05:48:19 +00:00
locale: String!
2020-06-20 05:11:05 +00:00
scriptCss: String
scriptJs: String
authorId: Int! @auth(requires: ["write:pages", "manage:system"])
authorName: String! @auth(requires: ["write:pages", "manage:system"])
authorEmail: String! @auth(requires: ["write:pages", "manage:system"])
creatorId: Int! @auth(requires: ["write:pages", "manage:system"])
creatorName: String! @auth(requires: ["write:pages", "manage:system"])
creatorEmail: String! @auth(requires: ["write:pages", "manage:system"])
2018-05-20 22:50:51 +00:00
}
2018-11-25 06:28:20 +00:00
type PageTag {
id: Int!
tag: String!
title: String
createdAt: Date!
updatedAt: Date!
}
2018-11-25 06:28:20 +00:00
type PageHistory {
versionId: Int!
2020-02-29 23:57:54 +00:00
versionDate: Date!
2018-11-25 06:28:20 +00:00
authorId: Int!
authorName: String!
actionType: String!
valueBefore: String
valueAfter: String
}
2020-02-24 04:53:27 +00:00
type PageVersion {
action: String!
authorId: String!
authorName: String!
content: String!
contentType: String!
createdAt: Date!
2020-02-29 23:57:54 +00:00
versionDate: Date!
2020-02-24 04:53:27 +00:00
description: String!
editor: String!
isPrivate: Boolean!
isPublished: Boolean!
locale: String!
pageId: Int!
path: String!
publishEndDate: Date!
publishStartDate: Date!
tags: [String]!
title: String!
versionId: Int!
}
type PageHistoryResult {
trail: [PageHistory]
total: Int!
}
2019-03-09 05:51:02 +00:00
type PageSearchResponse {
results: [PageSearchResult]!
suggestions: [String]!
totalHits: Int!
}
type PageSearchResult {
id: String!
2019-03-09 05:51:02 +00:00
title: String!
description: String!
path: String!
locale: String!
}
type PageListItem {
id: Int!
path: String!
locale: String!
title: String
description: String
contentType: String!
isPublished: Boolean!
isPrivate: Boolean!
privateNS: String
createdAt: Date!
updatedAt: Date!
tags: [String]
}
2019-10-08 03:38:06 +00:00
type PageTreeItem {
id: Int!
path: String!
depth: Int!
title: String!
isPrivate: Boolean!
isFolder: Boolean!
privateNS: String
parent: Int
pageId: Int
locale: String!
}
2020-01-05 20:04:16 +00:00
type PageLinkItem {
id: Int!
path: String!
title: String!
links: [String]!
}
2020-03-21 23:18:08 +00:00
type PageConflictLatest {
id: Int!
authorId: String!
authorName: String!
content: String!
createdAt: Date!
description: String!
isPublished: Boolean!
locale: String!
path: String!
tags: [String]
title: String!
updatedAt: Date!
}
enum PageOrderBy {
CREATED
ID
PATH
TITLE
UPDATED
}
enum PageOrderByDirection {
ASC
DESC
}
2019-10-08 03:38:06 +00:00
enum PageTreeMode {
FOLDERS
PAGES
ALL
}