139 lines
4.3 KiB
Go
139 lines
4.3 KiB
Go
/*
|
|
* 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"`
|
|
IsAdmin bool `json:"-"`
|
|
UserID string `json:"-"`
|
|
}
|
|
|
|
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 any `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"`
|
|
}
|