Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update create service&event proto request data layout. #1141

Merged
merged 8 commits into from
Jul 1, 2019
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 44 additions & 25 deletions protobuf/api/event.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 8 additions & 2 deletions protobuf/api/event.proto
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,14 @@ message StreamEventRequest {

// CreateEventRequest defines request for execution update.
message CreateEventRequest {
// The event type to use to create the Event.
types.Event event = 1;
// instanceHash is hash of instance that can proceed an execution.
string instanceHash = 1;

// key is the key of the event.
string key = 2;

// data is the data for the event.
string data = 3;
}

// CreateEventResponse defines response for execution update.
Expand Down
133 changes: 107 additions & 26 deletions protobuf/api/service.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 27 additions & 2 deletions protobuf/api/service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,33 @@ service Service {

// The request's data for the `Create` API.
message CreateServiceRequest {
// The service definition to use to create the Service.
types.Service definition = 1;
// Service's sid.
string sid = 1;

// Service's name.
string name = 2;

// Service's description.
string description = 3;

// Configurations related to the service
types.Service.Configuration configuration = 4;

// The list of tasks this service can execute.
repeated types.Service.Task tasks = 5;

// The list of events this service can emit.
repeated types.Service.Event events = 6;

// The container dependencies this service requires.
repeated types.Service.Dependency dependencies = 7;

// Service's repository url.
string repository = 8;

// The hash id of service's source code on IPFS.
string source = 9;

}

// The response's data for the `Create` API.
Expand Down
16 changes: 6 additions & 10 deletions server/grpc/api/event.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,24 +27,20 @@ func NewEventServer(sdk *sdk.SDK) *EventServer {

// Create creates a new event.
func (s *EventServer) Create(ctx context.Context, req *api.CreateEventRequest) (*api.CreateEventResponse, error) {
if req.Event.Hash != "" {
return nil, errors.New("create event: hash not allowed")
instanceHash, err := hash.Decode(req.InstanceHash)
if err != nil {
return nil, fmt.Errorf("create event: instance %s", err)
}

if req.Event.Key == "" {
if req.Key == "" {
return nil, errors.New("create event: key missing")
}

instanceHash, err := hash.Decode(req.Event.InstanceHash)
if err != nil {
return nil, fmt.Errorf("create event: instance %s", err)
}

var data map[string]interface{}
if err := json.Unmarshal([]byte(req.Event.Data), &data); err != nil {
if err := json.Unmarshal([]byte(req.Data), &data); err != nil {
return nil, fmt.Errorf("create event: data %s", err)
}
event, err := s.sdk.Event.Create(instanceHash, req.Event.Key, data)
event, err := s.sdk.Event.Create(instanceHash, req.Key, data)
if err != nil {
return nil, fmt.Errorf("create event: data %s", err)
}
Expand Down
14 changes: 12 additions & 2 deletions server/grpc/api/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,18 @@ func NewServiceServer(sdk *sdk.SDK) *ServiceServer {
}

// Create creates a new service from definition.
func (s *ServiceServer) Create(ctx context.Context, request *protobuf_api.CreateServiceRequest) (*protobuf_api.CreateServiceResponse, error) {
definition := fromProtoService(request.Definition)
func (s *ServiceServer) Create(ctx context.Context, req *protobuf_api.CreateServiceRequest) (*protobuf_api.CreateServiceResponse, error) {
definition := fromProtoService(&types.Service{
NicolasMahe marked this conversation as resolved.
Show resolved Hide resolved
Sid: req.Sid,
Name: req.Name,
Description: req.Description,
Configuration: req.Configuration,
Tasks: req.Tasks,
Events: req.Events,
Dependencies: req.Dependencies,
Repository: req.Repository,
Source: req.Source,
})
srv, err := s.sdk.Service.Create(definition)
if err != nil {
return nil, err
Expand Down