/
robot.go
53 lines (45 loc) · 1.17 KB
/
robot.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package robot
import (
"context"
"github.com/iimeta/iim-server/internal/dao"
"github.com/iimeta/iim-server/internal/errors"
"github.com/iimeta/iim-server/internal/model"
"github.com/iimeta/iim-server/internal/service"
"github.com/iimeta/iim-server/utility/logger"
"go.mongodb.org/mongo-driver/mongo"
)
type sRobot struct{}
func init() {
service.RegisterRobot(New())
}
func New() service.IRobot {
return &sRobot{}
}
func (s *sRobot) GetRobotByUserId(ctx context.Context, userId int) (*model.Robot, error) {
robot, err := dao.Robot.GetRobotByUserId(ctx, userId)
if err != nil && !errors.Is(err, mongo.ErrNoDocuments) {
logger.Error(ctx, err)
return nil, err
}
if robot == nil {
return nil, nil
}
return &model.Robot{
UserId: robot.UserId,
RobotName: robot.RobotName,
Describe: robot.Describe,
Logo: robot.Logo,
IsTalk: robot.IsTalk,
Status: robot.Status,
Type: robot.Type,
Company: robot.Company,
Model: robot.Model,
ModelType: robot.ModelType,
Role: robot.Role,
Prompt: robot.Prompt,
MsgType: robot.MsgType,
Proxy: robot.Proxy,
CreatedAt: robot.CreatedAt,
UpdatedAt: robot.UpdatedAt,
}, nil
}