197 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
			
		
		
	
	
			197 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
| # ===============================================
 | |
| # PAGES
 | |
| # ===============================================
 | |
| 
 | |
| extend type Query {
 | |
|   pages: PageQuery
 | |
| }
 | |
| 
 | |
| extend type Mutation {
 | |
|   pages: PageMutation
 | |
| }
 | |
| 
 | |
| # -----------------------------------------------
 | |
| # QUERIES
 | |
| # -----------------------------------------------
 | |
| 
 | |
| type PageQuery {
 | |
|   history(
 | |
|     id: Int!
 | |
|     offsetPage: Int
 | |
|     offsetSize: Int
 | |
|   ): PageHistoryResult @auth(requires: ["manage:system", "read:pages"])
 | |
| 
 | |
|   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
 | |
|   ): [PageListItem!]! @auth(requires: ["manage:system", "read:pages"])
 | |
| 
 | |
|   single(
 | |
|     id: Int!
 | |
|   ): Page @auth(requires: ["manage:pages", "delete:pages", "manage:system"])
 | |
| 
 | |
|   tags: [PageTag]! @auth(requires: ["manage:system", "read:pages"])
 | |
| }
 | |
| 
 | |
| # -----------------------------------------------
 | |
| # MUTATIONS
 | |
| # -----------------------------------------------
 | |
| 
 | |
| type PageMutation {
 | |
|   create(
 | |
|     content: String!
 | |
|     description: String!
 | |
|     editor: String!
 | |
|     isPublished: Boolean!
 | |
|     isPrivate: Boolean!
 | |
|     locale: String!
 | |
|     path: String!
 | |
|     publishEndDate: Date
 | |
|     publishStartDate: Date
 | |
|     tags: [String]!
 | |
|     title: String!
 | |
|   ): PageResponse @auth(requires: ["write:pages", "manage:pages", "manage:system"])
 | |
| 
 | |
|   update(
 | |
|     id: Int!
 | |
|     content: String
 | |
|     description: String
 | |
|     editor: String
 | |
|     isPrivate: Boolean
 | |
|     isPublished: Boolean
 | |
|     locale: String
 | |
|     path: String
 | |
|     publishEndDate: Date
 | |
|     publishStartDate: Date
 | |
|     tags: [String]
 | |
|     title: String
 | |
|   ): PageResponse @auth(requires: ["manage:pages", "manage:system"])
 | |
| 
 | |
|   delete(
 | |
|     id: Int!
 | |
|   ): DefaultResponse @auth(requires: ["delete:pages", "manage:system"])
 | |
| 
 | |
|   flushCache: DefaultResponse @auth(requires: ["manage:system"])
 | |
| 
 | |
|   migrateToLocale(
 | |
|     sourceLocale: String!
 | |
|     targetLocale: String!
 | |
|   ): PageMigrationResponse @auth(requires: ["manage:system"])
 | |
| }
 | |
| 
 | |
| # -----------------------------------------------
 | |
| # TYPES
 | |
| # -----------------------------------------------
 | |
| 
 | |
| type PageResponse {
 | |
|   responseResult: ResponseStatus!
 | |
|   page: Page
 | |
| }
 | |
| 
 | |
| type PageMigrationResponse {
 | |
|   responseResult: ResponseStatus!
 | |
|   count: Int
 | |
| }
 | |
| 
 | |
| type Page {
 | |
|   id: Int!
 | |
|   path: String!
 | |
|   hash: String!
 | |
|   title: String!
 | |
|   description: String!
 | |
|   isPrivate: Boolean!
 | |
|   isPublished: Boolean!
 | |
|   privateNS: String
 | |
|   publishStartDate: Date!
 | |
|   publishEndDate: String!
 | |
|   tags: [PageTag]!
 | |
|   content: String!
 | |
|   render: String
 | |
|   toc: String
 | |
|   contentType: String!
 | |
|   createdAt: Date!
 | |
|   updatedAt: Date!
 | |
|   editor: String!
 | |
|   locale: String!
 | |
|   authorId: Int!
 | |
|   authorName: String!
 | |
|   authorEmail: String!
 | |
|   creatorId: Int!
 | |
|   creatorName: String!
 | |
|   creatorEmail: String!
 | |
| }
 | |
| 
 | |
| type PageTag {
 | |
|   id: Int!
 | |
|   tag: String!
 | |
|   title: String
 | |
|   createdAt: Date!
 | |
|   updatedAt: Date!
 | |
| }
 | |
| 
 | |
| type PageHistory {
 | |
|   versionId: Int!
 | |
|   authorId: Int!
 | |
|   authorName: String!
 | |
|   actionType: String!
 | |
|   valueBefore: String
 | |
|   valueAfter: String
 | |
|   createdAt: Date!
 | |
| }
 | |
| 
 | |
| type PageHistoryResult {
 | |
|   trail: [PageHistory]
 | |
|   total: Int!
 | |
| }
 | |
| 
 | |
| type PageSearchResponse {
 | |
|   results: [PageSearchResult]!
 | |
|   suggestions: [String]!
 | |
|   totalHits: Int!
 | |
| }
 | |
| 
 | |
| type PageSearchResult {
 | |
|   id: String!
 | |
|   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]
 | |
| }
 | |
| 
 | |
| enum PageOrderBy {
 | |
|   CREATED
 | |
|   ID
 | |
|   PATH
 | |
|   TITLE
 | |
|   UPDATED
 | |
| }
 | |
| 
 | |
| enum PageOrderByDirection {
 | |
|   ASC
 | |
|   DESC
 | |
| }
 |