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