mirror of https://github.com/rocboss/paopao-ce
commit
345f7d50e7
@ -0,0 +1,14 @@
|
|||||||
|
package core
|
||||||
|
|
||||||
|
import "github.com/rocboss/paopao-ce/internal/dao/jinzhu/dbr"
|
||||||
|
|
||||||
|
type (
|
||||||
|
ShareKey = dbr.ShareKey
|
||||||
|
DeleteKeySuccessOrFail = dbr.DeleteKeySuccessOrFail
|
||||||
|
)
|
||||||
|
|
||||||
|
// share_key服务
|
||||||
|
type ShareKeyService interface {
|
||||||
|
GetUserKeys(UserName string) ([]*ShareKey, error)
|
||||||
|
DeleteUserKey(UserName string, key string) (DeleteKeySuccessOrFail, error)
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
package dbr
|
||||||
|
|
||||||
|
import "gorm.io/gorm"
|
||||||
|
|
||||||
|
type ShareKey struct {
|
||||||
|
UserName string `json:"user_name"`
|
||||||
|
ShareKey string `json:"share_key"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Description string `json:"description"`
|
||||||
|
Status int `json:"status"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *ShareKey) Get(db *gorm.DB) ([]ShareKey, error) {
|
||||||
|
var sks []ShareKey
|
||||||
|
|
||||||
|
if s.UserName != "" {
|
||||||
|
db = db.Where("user_name = ? AND status = 0", s.UserName)
|
||||||
|
}
|
||||||
|
//if s.ShareKey != "" {
|
||||||
|
// db = db.Where("share_key = ?", s.ShareKey)
|
||||||
|
//}
|
||||||
|
|
||||||
|
err := db.Table("p_share_key").Find(&sks).Error
|
||||||
|
if err != nil {
|
||||||
|
return sks, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return sks, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type DeleteKeySuccessOrFail struct {
|
||||||
|
SuccessOrFail bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sf *ShareKey) POST(db *gorm.DB) (DeleteKeySuccessOrFail, error) {
|
||||||
|
var sof DeleteKeySuccessOrFail
|
||||||
|
|
||||||
|
return sof, nil
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package jinzhu
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/rocboss/paopao-ce/internal/core"
|
||||||
|
"gorm.io/gorm"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ShareKeyService struct {
|
||||||
|
db *gorm.DB
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s ShareKeyService) DeleteUserKey(UserName string, key string) (core.DeleteKeySuccessOrFail, error) {
|
||||||
|
var deleteKey core.DeleteKeySuccessOrFail
|
||||||
|
deleteKey.SuccessOrFail = false
|
||||||
|
//根据username和key删除相应的key
|
||||||
|
err := s.db.Table("p_share_key").Where("user_name = ? AND share_key = ?", UserName, key).Update("status", 1).Error
|
||||||
|
if err != nil {
|
||||||
|
return deleteKey, err
|
||||||
|
}
|
||||||
|
deleteKey.SuccessOrFail = true
|
||||||
|
return deleteKey, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s ShareKeyService) GetUserKeys(UserName string) ([]*core.ShareKey, error) {
|
||||||
|
//根据username查询相应的keys
|
||||||
|
var keys []*core.ShareKey
|
||||||
|
err := s.db.Table("p_share_key").Where("user_name = ? and status = 0", UserName).Find(&keys).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return keys, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewShareKeyService(db *gorm.DB) *ShareKeyService {
|
||||||
|
return &ShareKeyService{
|
||||||
|
db: db,
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,57 @@
|
|||||||
|
package web
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/alimy/mir/v4"
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
"github.com/rocboss/paopao-ce/internal/servants/base"
|
||||||
|
"github.com/rocboss/paopao-ce/pkg/convert"
|
||||||
|
"github.com/rocboss/paopao-ce/pkg/xerror"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GetUserKeysReq 获取一个用户的所有key
|
||||||
|
type GetUserKeysReq struct {
|
||||||
|
UserId int64
|
||||||
|
UserName string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *GetUserKeysReq) Bind(c *gin.Context) mir.Error {
|
||||||
|
uid, ok := base.UserFrom(c)
|
||||||
|
if !ok {
|
||||||
|
return xerror.UnauthorizedTokenError
|
||||||
|
}
|
||||||
|
g.UserId = uid.ID
|
||||||
|
g.UserName = uid.Username
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type KeyInfo struct {
|
||||||
|
ShareKey string `json:"share_key"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Description string `json:"description"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetUserKeysResp struct {
|
||||||
|
ShareKeys []KeyInfo `json:"shareKeys"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// 逻辑删除服务
|
||||||
|
type DeleteKeyReq struct {
|
||||||
|
ShareKey string `json:"share_key"`
|
||||||
|
UserId int64
|
||||||
|
UserName string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *DeleteKeyReq) Bind(c *gin.Context) mir.Error {
|
||||||
|
uid, ok := base.UserFrom(c)
|
||||||
|
if !ok {
|
||||||
|
return xerror.UnauthorizedTokenError
|
||||||
|
}
|
||||||
|
d.UserId = uid.ID
|
||||||
|
d.UserName = uid.Username
|
||||||
|
d.ShareKey = convert.StrTo(c.Query("share_key")).String()
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type DeleteKeyResp struct {
|
||||||
|
Status string
|
||||||
|
}
|
@ -0,0 +1,99 @@
|
|||||||
|
package web
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/alimy/mir/v4"
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
api "github.com/rocboss/paopao-ce/auto/api/v1"
|
||||||
|
"github.com/rocboss/paopao-ce/internal/model/web"
|
||||||
|
"github.com/rocboss/paopao-ce/internal/servants/base"
|
||||||
|
"github.com/rocboss/paopao-ce/internal/servants/chain"
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
_ api.KeyQuery = (*shareKey)(nil)
|
||||||
|
)
|
||||||
|
|
||||||
|
type shareKey struct {
|
||||||
|
api.UnimplementedShareKeyServant
|
||||||
|
*base.DaoServant
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *shareKey) Chain() gin.HandlersChain {
|
||||||
|
return gin.HandlersChain{chain.JWT()}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *shareKey) GetKeyDetail(req *web.GetUserKeysReq) (*web.GetUserKeysResp, mir.Error) {
|
||||||
|
//判断GetUserKeys是否为nil
|
||||||
|
if s.Ds == nil {
|
||||||
|
logrus.Errorf("GetKeyDetail err: %s", web.ErrDsNil)
|
||||||
|
return nil, web.ErrDsNil
|
||||||
|
} else {
|
||||||
|
logrus.Info("GetKeyDetail success")
|
||||||
|
}
|
||||||
|
if req.UserName == "" {
|
||||||
|
logrus.Errorf("GetKeyDetail err: %s", web.ErrUserNameEmpty)
|
||||||
|
return nil, web.ErrUserNameEmpty
|
||||||
|
}
|
||||||
|
// 调用数据源的方法查询用户的所有key信息
|
||||||
|
keys, err := s.Ds.GetUserKeys(req.UserName)
|
||||||
|
if err != nil {
|
||||||
|
logrus.Errorf("GetUserKeys err: %s", err)
|
||||||
|
return nil, web.ErrGetUserKeysFailed
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将查询到的key信息转换为KeyInfo结构体
|
||||||
|
var keyInfos []web.KeyInfo
|
||||||
|
for _, key := range keys {
|
||||||
|
keyInfos = append(keyInfos, web.KeyInfo{
|
||||||
|
ShareKey: key.ShareKey,
|
||||||
|
Name: key.Name,
|
||||||
|
Description: key.Description,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 构建返回结果并返回
|
||||||
|
resp := &web.GetUserKeysResp{
|
||||||
|
ShareKeys: keyInfos,
|
||||||
|
}
|
||||||
|
return resp, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *shareKey) DeleteKeyDetail(req *web.DeleteKeyReq) (*web.DeleteKeyResp, mir.Error) {
|
||||||
|
//判断GetUserKeys是否为nil
|
||||||
|
if s.Ds == nil {
|
||||||
|
logrus.Errorf("GetKeyDetail err: %s", web.ErrDsNil)
|
||||||
|
return nil, web.ErrDsNil
|
||||||
|
} else {
|
||||||
|
logrus.Info("GetKeyDetail success")
|
||||||
|
}
|
||||||
|
if req.UserName == "" {
|
||||||
|
logrus.Errorf("GetKeyDetail err: %s", web.ErrUserNameEmpty)
|
||||||
|
return nil, web.ErrUserNameEmpty
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Print(req.UserName, req.ShareKey)
|
||||||
|
sof, err := s.Ds.DeleteUserKey(req.UserName, req.ShareKey)
|
||||||
|
if err != nil {
|
||||||
|
logrus.Errorf("DeleteUserKey err: %s", err)
|
||||||
|
return nil, web.ErrDeleteUserKeyFailed
|
||||||
|
}
|
||||||
|
if sof.SuccessOrFail == false {
|
||||||
|
logrus.Errorf("DeleteUserKey err: %s", err)
|
||||||
|
return nil, web.ErrDeleteUserKeyFailed
|
||||||
|
}
|
||||||
|
|
||||||
|
// 构建返回结果并返回
|
||||||
|
resp := &web.DeleteKeyResp{
|
||||||
|
Status: "DELETE_SUCCESS",
|
||||||
|
}
|
||||||
|
return resp, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewShareKeyServant 创建share_key服务
|
||||||
|
func NewShareKeyServant(s *base.DaoServant) api.KeyQuery {
|
||||||
|
return &shareKey{
|
||||||
|
DaoServant: s,
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
import { request } from "@/utils/request";
|
||||||
|
|
||||||
|
//获取用户的sharekey
|
||||||
|
// export const getShareKeys = (
|
||||||
|
// params: NetParams.UserGetShareKeys
|
||||||
|
// ): Promise<NetReq.UserGetShareKeys> => {
|
||||||
|
// return request({
|
||||||
|
// method: "get",
|
||||||
|
// url: "/v1/user/keys",
|
||||||
|
// params,
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
export const getShareKeys = (token: NetParams.AuthUserInfo = ""): Promise<NetReq.UserGetShareKeys> => {
|
||||||
|
return request({
|
||||||
|
method: "get",
|
||||||
|
url: "/v1/user/keys",
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${token}`,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export const deleteThisShareKey = (params: NetParams.UserDeleteShareKey,token: NetParams.AuthUserInfo = ""): Promise<NetReq.UserDeleteShareKey> => {
|
||||||
|
return request({
|
||||||
|
method: "post",
|
||||||
|
url: "/v1/user/keys",
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${token}`,
|
||||||
|
},
|
||||||
|
params,
|
||||||
|
});
|
||||||
|
}
|
Loading…
Reference in new issue