1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- # ===============================================
- # COMMENT
- # ===============================================
- extend type Query {
- comments: CommentQuery
- }
- extend type Mutation {
- comments: CommentMutation
- }
- # -----------------------------------------------
- # QUERIES
- # -----------------------------------------------
- type CommentQuery {
- providers: [CommentProvider] @auth(requires: ["manage:system"])
- list(
- locale: String!
- path: String!
- ): [CommentPost]! @auth(requires: ["read:comments", "manage:system"])
- single(
- id: Int!
- ): CommentPost @auth(requires: ["read:comments", "manage:system"])
- }
- # -----------------------------------------------
- # MUTATIONS
- # -----------------------------------------------
- type CommentMutation {
- updateProviders(
- providers: [CommentProviderInput]
- ): DefaultResponse @auth(requires: ["manage:system"])
- create(
- pageId: Int!
- replyTo: Int
- content: String!
- guestName: String
- guestEmail: String
- ): CommentCreateResponse @auth(requires: ["write:comments", "manage:system"]) @rateLimit(limit: 1, duration: 15)
- update(
- id: Int!
- content: String!
- ): CommentUpdateResponse @auth(requires: ["write:comments", "manage:comments", "manage:system"])
- delete(
- id: Int!
- ): DefaultResponse @auth(requires: ["manage:comments", "manage:system"])
- }
- # -----------------------------------------------
- # TYPES
- # -----------------------------------------------
- type CommentProvider {
- isEnabled: Boolean!
- key: String!
- title: String!
- description: String
- logo: String
- website: String
- isAvailable: Boolean
- config: [KeyValuePair]
- }
- input CommentProviderInput {
- isEnabled: Boolean!
- key: String!
- config: [KeyValuePairInput]
- }
- type CommentPost {
- id: Int!
- content: String! @auth(requires: ["write:comments", "manage:comments", "manage:system"])
- render: String!
- authorId: Int!
- authorName: String!
- authorEmail: String! @auth(requires: ["manage:system"])
- authorIP: String! @auth(requires: ["manage:system"])
- createdAt: Date!
- updatedAt: Date!
- }
- type CommentCreateResponse {
- responseResult: ResponseStatus
- id: Int
- }
- type CommentUpdateResponse {
- responseResult: ResponseStatus
- render: String
- }
|