/
create.go
39 lines (33 loc) · 1004 Bytes
/
create.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
package team
import (
"context"
desc "github.com/Constantine27K/crnt-data-manager/pkg/api/team"
log "github.com/sirupsen/logrus"
"go.uber.org/zap"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
func (i *Implementation) CreateTeam(ctx context.Context, req *desc.TeamCreateRequest) (*desc.TeamCreateResponse, error) {
_, err := i.authorizer.AuthorizeAdmin(ctx)
if err != nil {
log.Error("error while verifying rights",
zap.Any("team", req.GetTeam()),
zap.Error(err))
return nil, status.Error(codes.Unauthenticated, err.Error())
}
err = i.validator.CheckTeam(req.GetTeam())
if err != nil {
log.Error("team is not valid",
zap.Any("team", req.GetTeam()),
zap.Error(err))
return nil, status.Error(codes.InvalidArgument, err.Error())
}
id, err := i.storage.Add(req.GetTeam())
if err != nil {
log.Error("failed to store a team",
zap.Any("team", req.GetTeam()),
zap.Error(err))
return nil, err
}
return &desc.TeamCreateResponse{Id: id}, nil
}