blob: 946d11653e78c8a94f6ee3fb3a351ef04184314f [file] [log] [blame]
/*
* 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 (
"time"
"github.com/apache/answer/internal/base/constant"
)
// AddRevisionDTO add revision request
type AddRevisionDTO struct {
// user id
UserID string
// object id
ObjectID string
// title
Title string
// content
Content string
// log
Log string
// status
Status int
}
// GetRevisionListReq get revision list all request
type GetRevisionListReq struct {
// object id
ObjectID string `validate:"required" comment:"object_id" form:"object_id"`
}
const RevisionAuditApprove = "approve"
const RevisionAuditReject = "reject"
type RevisionAuditReq struct {
// object id
ID string `validate:"required" comment:"id" form:"id"`
Operation string `validate:"required" comment:"operation" form:"operation"` //approve or reject
UserID string `json:"-"`
CanReviewQuestion bool `json:"-"`
CanReviewAnswer bool `json:"-"`
CanReviewTag bool `json:"-"`
}
type RevisionSearch struct {
Page int `json:"page" form:"page"` // Query number of pages
CanReviewQuestion bool `json:"-"`
CanReviewAnswer bool `json:"-"`
CanReviewTag bool `json:"-"`
UserID string `json:"-"`
}
func (r RevisionSearch) GetCanReviewObjectTypes() []int {
objectType := make([]int, 0)
if r.CanReviewAnswer {
objectType = append(objectType, constant.ObjectTypeStrMapping[constant.AnswerObjectType])
}
if r.CanReviewQuestion {
objectType = append(objectType, constant.ObjectTypeStrMapping[constant.QuestionObjectType])
}
if r.CanReviewTag {
objectType = append(objectType, constant.ObjectTypeStrMapping[constant.TagObjectType])
}
return objectType
}
type GetUnreviewedRevisionResp struct {
Type string `json:"type"`
Info *UnreviewedRevisionInfoInfo `json:"info"`
UnreviewedInfo *GetRevisionResp `json:"unreviewed_info"`
}
// GetRevisionResp get revision response
type GetRevisionResp struct {
ID string `json:"id"`
UserID string `json:"use_id"`
ObjectID string `json:"object_id"`
ObjectType int `json:"-"`
Title string `json:"title"`
UrlTitle string `json:"url_title"`
Content string `json:"-"`
ContentParsed interface{} `json:"content"`
Status int `json:"status"`
CreatedAt time.Time `json:"-"`
CreatedAtParsed int64 `json:"create_at"`
UserInfo UserBasicInfo `json:"user_info"`
Log string `json:"reason"`
}
// GetReviewingTypeReq get reviewing type request
type GetReviewingTypeReq struct {
CanReviewQuestion bool `json:"-"`
CanReviewAnswer bool `json:"-"`
CanReviewTag bool `json:"-"`
IsAdmin bool `json:"-"`
UserID string `json:"-"`
}
func (r *GetReviewingTypeReq) GetCanReviewObjectTypes() []int {
objectType := make([]int, 0)
if r.CanReviewAnswer {
objectType = append(objectType, constant.ObjectTypeStrMapping[constant.AnswerObjectType])
}
if r.CanReviewQuestion {
objectType = append(objectType, constant.ObjectTypeStrMapping[constant.QuestionObjectType])
}
if r.CanReviewTag {
objectType = append(objectType, constant.ObjectTypeStrMapping[constant.TagObjectType])
}
return objectType
}
// GetReviewingTypeResp get reviewing type response
type GetReviewingTypeResp struct {
Name string `json:"name"`
Label string `json:"label"`
TodoAmount int64 `json:"todo_amount"`
}