You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@milagro.apache.org by sm...@apache.org on 2019/10/09 06:55:29 UTC

[incubator-milagro-dta] branch tendermint updated: Rename HTTP endpoints /order1 to /order and /order/secret1 to /order/secret

This is an automated email from the ASF dual-hosted git repository.

smihaylov pushed a commit to branch tendermint
in repository https://gitbox.apache.org/repos/asf/incubator-milagro-dta.git


The following commit(s) were added to refs/heads/tendermint by this push:
     new 2932457  Rename HTTP endpoints /order1 to /order and /order/secret1 to /order/secret
2932457 is described below

commit 2932457e7b6084852439a87e9fbea690ae8b5d11
Author: Stanislav Mihaylov <sm...@gmail.com>
AuthorDate: Wed Oct 9 09:54:25 2019 +0300

    Rename HTTP endpoints /order1 to /order and /order/secret1 to /order/secret
    
    Add HTTP client
---
 pkg/api/client.go           | 117 ++++++++++++++++++++++++++++++++++++++++++++
 pkg/defaultservice/order.go |  10 ++--
 pkg/endpoints/endpoints.go  |  20 ++++----
 pkg/service/service.go      |   4 +-
 4 files changed, 133 insertions(+), 18 deletions(-)

diff --git a/pkg/api/client.go b/pkg/api/client.go
new file mode 100644
index 0000000..4d3ab6d
--- /dev/null
+++ b/pkg/api/client.go
@@ -0,0 +1,117 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+/*
+Package api - service integration and contract types
+*/
+package api
+
+import (
+	"context"
+	"net/http"
+
+	"github.com/apache/incubator-milagro-dta/libs/logger"
+	"github.com/apache/incubator-milagro-dta/libs/transport"
+)
+
+var (
+	apiVersion = "v1"
+)
+
+// ClientService interface
+type ClientService interface {
+	Order(token string, req *OrderRequest) (*OrderResponse, error)
+	OrderSecret(token string, req *OrderSecretRequest) (*OrderSecretResponse, error)
+	Status(token string) (*StatusResponse, error)
+}
+
+// MilagroClientService - implements Service Interface
+type MilagroClientService struct {
+	endpoints transport.ClientEndpoints
+}
+
+// ClientEndpoints return only the exported endpoints
+func ClientEndpoints() transport.HTTPEndpoints {
+	return transport.HTTPEndpoints{
+		"Order": {
+			Path:        "/" + apiVersion + "/order",
+			Method:      http.MethodPost,
+			NewRequest:  func() interface{} { return &OrderRequest{} },
+			NewResponse: func() interface{} { return &OrderResponse{} },
+		},
+		"OrderSecret": {
+			Path:        "/" + apiVersion + "/order/secret",
+			Method:      http.MethodPost,
+			NewRequest:  func() interface{} { return &OrderSecretRequest{} },
+			NewResponse: func() interface{} { return &OrderSecretResponse{} },
+		},
+		"Status": {
+			Path:        "/" + apiVersion + "/status",
+			Method:      http.MethodGet,
+			NewResponse: func() interface{} { return &StatusResponse{} },
+		},
+	}
+}
+
+// NewHTTPClient returns Service backed by an HTTP server living at the remote instance
+func NewHTTPClient(instance string, logger *logger.Logger) (ClientService, error) {
+	clientEndpoints, err := transport.NewHTTPClient(instance, ClientEndpoints(), logger)
+	return MilagroClientService{clientEndpoints}, err
+
+}
+
+// Order makes a request for a new order
+func (c MilagroClientService) Order(token string, req *OrderRequest) (*OrderResponse, error) {
+	endpoint := c.endpoints["Order"]
+	ctx := context.Background()
+	ctx = transport.SetJWTAuthHeader(ctx, token)
+
+	resp, err := endpoint(ctx, req)
+	if err != nil {
+		return nil, err
+	}
+
+	return resp.(*OrderResponse), nil
+}
+
+// OrderSecret makes a request for initiate the order secret
+func (c MilagroClientService) OrderSecret(token string, req *OrderSecretRequest) (*OrderSecretResponse, error) {
+	endpoint := c.endpoints["OrderSecret"]
+	ctx := context.Background()
+	ctx = transport.SetJWTAuthHeader(ctx, token)
+
+	resp, err := endpoint(ctx, req)
+	if err != nil {
+		return nil, err
+	}
+
+	return resp.(*OrderSecretResponse), nil
+}
+
+//Status - Allows a client to see the status of the server that it is connecting too
+func (c MilagroClientService) Status(token string) (*StatusResponse, error) {
+	endpoint := c.endpoints["Status"]
+	ctx := context.Background()
+	ctx = transport.SetJWTAuthHeader(ctx, token)
+
+	resp, err := endpoint(ctx, nil)
+	if err != nil {
+		return nil, err
+	}
+
+	return resp.(*StatusResponse), nil
+}
diff --git a/pkg/defaultservice/order.go b/pkg/defaultservice/order.go
index 6ed4f5e..d5fc403 100644
--- a/pkg/defaultservice/order.go
+++ b/pkg/defaultservice/order.go
@@ -128,8 +128,8 @@ func (s *Service) ProduceFinalSecret(seed, sikeSK []byte, order, orderPart4 *doc
 	return finalPrivateKey, finalPublicKey, nil, err
 }
 
-// Order1 -
-func (s *Service) Order1(req *api.OrderRequest) (string, error) {
+// Order creates a new deposit order
+func (s *Service) Order(req *api.OrderRequest) (string, error) {
 	if err := s.Plugin.ValidateOrderRequest(req); err != nil {
 		return "", err
 	}
@@ -177,8 +177,8 @@ func (s *Service) Order1(req *api.OrderRequest) (string, error) {
 	return order.Reference, nil
 }
 
-// OrderSecret1 -
-func (s *Service) OrderSecret1(req *api.OrderSecretRequest) (string, error) {
+// OrderSecret initiates the process for retreiving the order secret
+func (s *Service) OrderSecret(req *api.OrderSecretRequest) (string, error) {
 	orderReference := req.OrderReference
 	var previousOrderHash string
 	if err := s.Store.Get("order", orderReference, &previousOrderHash); err != nil {
@@ -219,8 +219,6 @@ func (s *Service) OrderSecret1(req *api.OrderSecretRequest) (string, error) {
 		return "", err
 	}
 
-	_ = tx
-
 	order := &documents.OrderDoc{}
 	err = documents.DecodeOrderDocument(tx.Payload, previousOrderHash, order, sikeSK, nodeID, remoteIDDoc.BLSPublicKey)
 	if err != nil {
diff --git a/pkg/endpoints/endpoints.go b/pkg/endpoints/endpoints.go
index 237e3c2..e046d83 100644
--- a/pkg/endpoints/endpoints.go
+++ b/pkg/endpoints/endpoints.go
@@ -49,9 +49,9 @@ func Endpoints(svc service.Service, corsAllow string, authorizer transport.Autho
 	principalEndpoints := transport.HTTPEndpoints{
 
 		"Order1": {
-			Path:        "/" + apiVersion + "/order1",
+			Path:        "/" + apiVersion + "/order",
 			Method:      http.MethodPost,
-			Endpoint:    MakeOrder1Endpoint(svc, logger),
+			Endpoint:    MakeOrderEndpoint(svc, logger),
 			NewRequest:  func() interface{} { return &api.OrderRequest{} },
 			NewResponse: func() interface{} { return &api.OrderResponse{} },
 			Options: transport.ServerOptions(
@@ -90,9 +90,9 @@ func Endpoints(svc service.Service, corsAllow string, authorizer transport.Autho
 			},
 		},
 		"OrderSecret1": {
-			Path:        "/" + apiVersion + "/order/secret1",
+			Path:        "/" + apiVersion + "/order/secret",
 			Method:      http.MethodPost,
-			Endpoint:    MakeOrderSecret1Endpoint(svc, logger),
+			Endpoint:    MakeOrderSecretEndpoint(svc, logger),
 			NewRequest:  func() interface{} { return &api.OrderSecretRequest{} },
 			NewResponse: func() interface{} { return &api.OrderSecretResponse{} },
 			Options: transport.ServerOptions(
@@ -199,8 +199,8 @@ func MakeGetOrderEndpoint(m service.Service, log *logger.Logger) endpoint.Endpoi
 	}
 }
 
-//MakeOrder1Endpoint -
-func MakeOrder1Endpoint(m service.Service, log *logger.Logger) endpoint.Endpoint {
+//MakeOrderEndpoint -
+func MakeOrderEndpoint(m service.Service, log *logger.Logger) endpoint.Endpoint {
 	return func(ctx context.Context, request interface{}) (response interface{}, err error) {
 		req, ok := request.(*api.OrderRequest)
 		if !ok {
@@ -210,12 +210,12 @@ func MakeOrder1Endpoint(m service.Service, log *logger.Logger) endpoint.Endpoint
 			return "", err
 		}
 		debugRequest(ctx, req, log)
-		return m.Order1(req)
+		return m.Order(req)
 	}
 }
 
-//MakeOrderSecret1Endpoint -
-func MakeOrderSecret1Endpoint(m service.Service, log *logger.Logger) endpoint.Endpoint {
+//MakeOrderSecretEndpoint -
+func MakeOrderSecretEndpoint(m service.Service, log *logger.Logger) endpoint.Endpoint {
 	return func(ctx context.Context, request interface{}) (response interface{}, err error) {
 		req, ok := request.(*api.OrderSecretRequest)
 		if !ok {
@@ -225,7 +225,7 @@ func MakeOrderSecret1Endpoint(m service.Service, log *logger.Logger) endpoint.En
 			return "", err
 		}
 		debugRequest(ctx, req, log)
-		return m.OrderSecret1(req)
+		return m.OrderSecret(req)
 	}
 }
 
diff --git a/pkg/service/service.go b/pkg/service/service.go
index 1949ed0..44c0f2e 100644
--- a/pkg/service/service.go
+++ b/pkg/service/service.go
@@ -32,8 +32,8 @@ type Service interface {
 	OrderList(req *api.OrderListRequest) (*api.OrderListResponse, error)
 
 	//Order processing - REST access to create an Order & Redeem
-	OrderSecret1(req *api.OrderSecretRequest) (string, error)
-	Order1(req *api.OrderRequest) (string, error)
+	Order(req *api.OrderRequest) (string, error)
+	OrderSecret(req *api.OrderSecretRequest) (string, error)
 
 	//Fullfill processing
 	FulfillOrder(tx *api.BlockChainTX) (string, error)