generated from VLADIMIR/template
add update status methods
This commit is contained in:
@@ -282,6 +282,46 @@ func (s *server) UpdateScenario(ctx context.Context, req *proto.UpdateScenarioRe
|
||||
return &proto.UpdateScenarioRsp{}, nil
|
||||
}
|
||||
|
||||
func (s *server) PublicScenario(ctx context.Context, req *proto.PublicScenarioReq) (*proto.PublicScenarioRsp, error) {
|
||||
claims := ctx.Value("claims").(*processor_jwt.JWTClaims)
|
||||
if !roles.HasRole(claims, roles.Author) {
|
||||
return nil, status.Errorf(codes.PermissionDenied, "permission denied")
|
||||
}
|
||||
|
||||
err := s.scenarioService.UpdateScenarioStatusByID(
|
||||
ctx,
|
||||
int(req.Id),
|
||||
"public",
|
||||
)
|
||||
if err != nil {
|
||||
return &proto.PublicScenarioRsp{
|
||||
Error: err.Error(),
|
||||
}, nil
|
||||
}
|
||||
|
||||
return &proto.PublicScenarioRsp{}, nil
|
||||
}
|
||||
|
||||
func (s *server) DraftScenario(ctx context.Context, req *proto.DraftScenarioReq) (*proto.DraftScenarioRsp, error) {
|
||||
claims := ctx.Value("claims").(*processor_jwt.JWTClaims)
|
||||
if !roles.HasRole(claims, roles.Author) {
|
||||
return nil, status.Errorf(codes.PermissionDenied, "permission denied")
|
||||
}
|
||||
|
||||
err := s.scenarioService.UpdateScenarioStatusByID(
|
||||
ctx,
|
||||
int(req.Id),
|
||||
"draft",
|
||||
)
|
||||
if err != nil {
|
||||
return &proto.DraftScenarioRsp{
|
||||
Error: err.Error(),
|
||||
}, nil
|
||||
}
|
||||
|
||||
return &proto.DraftScenarioRsp{}, nil
|
||||
}
|
||||
|
||||
func (s *server) DeleteScenario(ctx context.Context, req *proto.DeleteScenarioReq) (*proto.DeleteScenarioRsp, error) {
|
||||
claims := ctx.Value("claims").(*processor_jwt.JWTClaims)
|
||||
if !roles.HasRole(claims, roles.Author) {
|
||||
|
||||
@@ -184,6 +184,31 @@ func (s *ScenariosRepo) UpdateScenarioByID(
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *ScenariosRepo) UpdateScenarioStatusByID(
|
||||
ctx context.Context,
|
||||
id int,
|
||||
status string,
|
||||
) error {
|
||||
tag, err := s.pool.Exec(
|
||||
ctx,
|
||||
`UPDATE scenarios
|
||||
SET
|
||||
status = $1,
|
||||
published_at = NOW(),
|
||||
updated_at = NOW()
|
||||
WHERE id = $2`,
|
||||
status,
|
||||
id,
|
||||
)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if tag.RowsAffected() == 0 {
|
||||
return ErrScenarioNotFound
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *ScenariosRepo) DeleteScenarioByID(
|
||||
ctx context.Context,
|
||||
id int,
|
||||
|
||||
@@ -67,6 +67,14 @@ func (s *ScenarioService) UpdateScenarioByID(
|
||||
return s.scenariosRepo.UpdateScenarioByID(ctx, id, name, description, image)
|
||||
}
|
||||
|
||||
func (s *ScenarioService) UpdateScenarioStatusByID(
|
||||
ctx context.Context,
|
||||
id int,
|
||||
status string,
|
||||
) error {
|
||||
return s.scenariosRepo.UpdateScenarioStatusByID(ctx, id, status)
|
||||
}
|
||||
|
||||
func (s *ScenarioService) DeleteScenarioByID(
|
||||
ctx context.Context,
|
||||
id int,
|
||||
|
||||
Reference in New Issue
Block a user