/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package schema import ( "github.com/apache/answer/internal/base/validator" "github.com/apache/answer/pkg/uid" ) // UpdateReviewReq update review request type UpdateReviewReq struct { ReviewID int `validate:"required" json:"review_id"` Status string `validate:"required,oneof=approve reject" json:"status"` UserID string `json:"-"` IsAdmin bool `json:"-"` } func (r *UpdateReviewReq) IsApprove() bool { return r.Status == "approve" } func (r *UpdateReviewReq) IsReject() bool { return r.Status == "reject" } // GetUnreviewedPostPageReq get review page request type GetUnreviewedPostPageReq struct { ObjectID string `validate:"omitempty" form:"object_id"` Page int `validate:"omitempty" form:"page"` ReviewerMapping map[string]string `json:"-"` UserID string `json:"-"` IsAdmin bool `json:"-"` } func (r *GetUnreviewedPostPageReq) Check() (errField []*validator.FormErrorField, err error) { if len(r.ObjectID) > 0 { r.Page = 1 r.ObjectID = uid.DeShortID(r.ObjectID) } return } // GetUnreviewedPostPageResp get review page response type GetUnreviewedPostPageResp struct { ReviewID int `json:"review_id"` CreatedAt int64 `json:"created_at"` ObjectID string `json:"object_id"` QuestionID string `json:"question_id"` AnswerID string `json:"answer_id"` CommentID string `json:"comment_id"` ObjectType string `json:"object_type" enums:"question,answer,comment"` Title string `json:"title"` UrlTitle string `json:"url_title"` OriginalText string `json:"original_text"` ParsedText string `json:"parsed_text"` Tags []*TagResp `json:"tags"` ObjectStatus int `json:"object_status"` ObjectShowStatus int `json:"object_show_status"` AuthorUserInfo UserBasicInfo `json:"author_user_info"` SubmitAt int64 `json:"submit_at"` SubmitterDisplayName string `json:"submitter_display_name"` Reason string `json:"reason"` }