| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- // Code scaffolded by goctl. Safe to edit.
- // goctl 1.10.2
- package logic
- import (
- "context"
- "strings"
- "udeServer/internal/apierr"
- "udeServer/internal/model"
- "udeServer/internal/svc"
- "udeServer/internal/types"
- "github.com/zeromicro/go-zero/core/logx"
- )
- type CreateKeyLogic struct {
- logx.Logger
- ctx context.Context
- svcCtx *svc.ServiceContext
- }
- func NewCreateKeyLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateKeyLogic {
- return &CreateKeyLogic{
- Logger: logx.WithContext(ctx),
- ctx: ctx,
- svcCtx: svcCtx,
- }
- }
- func (l *CreateKeyLogic) CreateKey(req *types.CreateKeyReq) (*types.KeyResp, error) {
- name := strings.TrimSpace(req.Name)
- if name == "" {
- return nil, apierr.BadRequest("name is required")
- }
- iden := newKeyIden()
- content, err := deriveKeyContent(iden)
- if err != nil {
- l.Errorf("derive key content failed: %v", err)
- return nil, err
- }
- data := &model.TKey{
- Iden: nullString(iden),
- Name: nullString(name),
- Content: nullString(content),
- Status: nullString(keyDefaultStatus),
- }
- result, err := l.svcCtx.KeyModel.Insert(l.ctx, data)
- if err != nil {
- l.Errorf("insert key failed: %v", err)
- return nil, err
- }
- id, err := result.LastInsertId()
- if err != nil {
- l.Errorf("get inserted key id failed: %v", err)
- return nil, err
- }
- created, err := findKey(l.ctx, l.svcCtx.KeyModel, id)
- if err != nil {
- return nil, err
- }
- return toKeyResp(created), nil
- }
|