-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtask_server.go
More file actions
40 lines (31 loc) · 1002 Bytes
/
task_server.go
File metadata and controls
40 lines (31 loc) · 1002 Bytes
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
package main
import (
"context"
"github.com/pvelx/trigger-service-demo/proto"
"github.com/pvelx/triggerhook/contracts"
"github.com/pvelx/triggerhook/domain"
)
func NewTaskServer(tasksDeferredService contracts.TriggerHookInterface) proto.TaskServer {
return &taskServer{
tasksDeferredService: tasksDeferredService,
}
}
type taskServer struct {
proto.TaskServer
tasksDeferredService contracts.TriggerHookInterface
}
func (s *taskServer) Create(ctx context.Context, req *proto.Request) (*proto.Response, error) {
task := domain.Task{
ExecTime: req.ExecTime,
}
if err := s.tasksDeferredService.Create(&task); err != nil {
return &proto.Response{Status: "fail"}, nil
}
return &proto.Response{Status: "ok", Id: task.Id}, nil
}
func (s *taskServer) Delete(ctx context.Context, req *proto.Request) (*proto.Response, error) {
if err := s.tasksDeferredService.Delete(req.Id); err != nil {
return &proto.Response{Status: "fail"}, nil
}
return &proto.Response{Status: "ok"}, nil
}