# =============================================== # COMMENT # =============================================== extend type Query { commentsProviders: [CommentProvider] comments( locale: String! path: String! ): [CommentPost]! commentById( id: Int! ): CommentPost } extend type Mutation { updateCommentsProviders( providers: [CommentProviderInput] ): DefaultResponse createComment( pageId: Int! replyTo: Int content: String! guestName: String guestEmail: String ): CommentCreateResponse @rateLimit(limit: 1, duration: 15) updateComment( id: Int! content: String! ): CommentUpdateResponse deleteComment( id: Int! ): DefaultResponse } # ----------------------------------------------- # 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 render: String authorId: Int authorName: String authorEmail: String authorIP: String createdAt: Date updatedAt: Date } type CommentCreateResponse { operation: Operation id: Int } type CommentUpdateResponse { operation: Operation render: String }