Skip to content

Commit

Permalink
Merge pull request #1141 from mesg-foundation/fix/param-in-create-api
Browse files Browse the repository at this point in the history
Update create service&event proto request data layout.
  • Loading branch information
antho1404 authored Jul 1, 2019
2 parents 66021ed + 6943485 commit 55006ea
Show file tree
Hide file tree
Showing 6 changed files with 204 additions and 67 deletions.
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{
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

0 comments on commit 55006ea

Please sign in to comment.