# =============================================== # PAGES # =============================================== extend type Query { pages: PageQuery } extend type Mutation { pages: PageMutation } # ----------------------------------------------- # QUERIES # ----------------------------------------------- type PageQuery { history( id: Int! offset: Int ): [PageHistory] list( filter: String orderBy: String ): [PageMinimal] single( id: Int path: String locale: String isPrivate: Boolean ): Page } # ----------------------------------------------- # 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"]) } # ----------------------------------------------- # TYPES # ----------------------------------------------- type PageResponse { responseResult: ResponseStatus! page: Page } type PageMinimal { id: Int! name: String! userCount: Int createdAt: Date! updatedAt: Date! } type Page { id: Int! name: String! rights: [Right] users: [User] createdAt: Date! updatedAt: Date! } type PageHistory { versionId: Int! authorId: Int! authorName: String! actionType: String! valueBefore: String valueAfter: String createdAt: Date! }