| 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
 
- }
 
 
  |