From 2e58ace10741d192c37c127cb2f1180b498a52b9 Mon Sep 17 00:00:00 2001 From: dylanyang Date: Thu, 7 Mar 2024 21:20:58 +0800 Subject: [PATCH] optimize get API --- common/model/api_request.go | 14 -------------- common/model/api_response.go | 14 ++++++++++++++ docs/docs.go | 8 ++++++++ docs/swagger.json | 8 ++++++++ docs/swagger.yaml | 5 +++++ rpc_server/api/v1/get_support_entrypoint.go | 14 +++++--------- rpc_server/api/v1/get_support_strategy.go | 15 ++++----------- rpc_server/api/v1/try_pay_user_operation.go | 2 +- .../operator/get_support_entry_point_execute.go | 6 ++++-- service/operator/get_support_strategy_execute.go | 2 +- service/operator/try_pay_user_op_execute.go | 11 +++-------- 11 files changed, 53 insertions(+), 46 deletions(-) diff --git a/common/model/api_request.go b/common/model/api_request.go index 29a1c2f2..5069dcc7 100644 --- a/common/model/api_request.go +++ b/common/model/api_request.go @@ -22,17 +22,3 @@ func (request *TryPayUserOpRequest) Validate() error { } return nil } - -type GetSupportEntrypointRequest struct { -} - -func (request *GetSupportEntrypointRequest) Validate() error { - return nil -} - -type GetSupportStrategyRequest struct { -} - -func (request *GetSupportStrategyRequest) Validate() error { - return nil -} diff --git a/common/model/api_response.go b/common/model/api_response.go index 4a361925..7f1818e9 100644 --- a/common/model/api_response.go +++ b/common/model/api_response.go @@ -28,3 +28,17 @@ type PayReceipt struct { TransactionHash string `json:"transaction_hash"` Sponsor string `json:"sponsor"` } + +type GetSupportEntryPointResponse struct { + EntrypointDomains []EntrypointDomain `json:"entrypoints"` +} +type EntrypointDomain struct { + Address string `json:"address"` + Desc string `json:"desc"` + NetWork types.NetWork `json:"network"` + StrategyId string `json:"strategy_id"` +} + +type GetSupportStrategyResponse struct { + Strategies []Strategy `json:"strategies"` +} diff --git a/docs/docs.go b/docs/docs.go index 0e07f2c2..b27877dd 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -75,6 +75,14 @@ const docTemplate = `{ "tags": [ "Sponsor" ], + "parameters": [ + { + "type": "string", + "description": "network", + "name": "network", + "in": "query" + } + ], "responses": { "200": { "description": "OK" diff --git a/docs/swagger.json b/docs/swagger.json index e9a7fd87..0350bbd5 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -64,6 +64,14 @@ "tags": [ "Sponsor" ], + "parameters": [ + { + "type": "string", + "description": "network", + "name": "network", + "in": "query" + } + ], "responses": { "200": { "description": "OK" diff --git a/docs/swagger.yaml b/docs/swagger.yaml index b20ce651..59d6bbc4 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -97,6 +97,11 @@ paths: consumes: - application/json description: get the support entrypoint + parameters: + - description: network + in: query + name: network + type: string responses: "200": description: OK diff --git a/rpc_server/api/v1/get_support_entrypoint.go b/rpc_server/api/v1/get_support_entrypoint.go index d3e0a0b8..da677771 100644 --- a/rpc_server/api/v1/get_support_entrypoint.go +++ b/rpc_server/api/v1/get_support_entrypoint.go @@ -14,25 +14,21 @@ import ( // @Accept json // @Product json // @Router /api/v1/get-support-entrypoint [GET] +// @Param network query string false "network" // @Success 200 // @Security JWT func GetSupportEntrypoint(c *gin.Context) { - request := model.GetSupportEntrypointRequest{} response := model.GetResponse() //1. API validate - if err := c.ShouldBindJSON(&request); err != nil { - errStr := fmt.Sprintf("Request Error [%v]", err) - response.SetHttpCode(http.StatusBadRequest).FailCode(c, http.StatusBadRequest, errStr) - return - } - if err := request.Validate(); err != nil { - errStr := fmt.Sprintf("Request Error [%v]", err) + network := c.Query("network") + if network == "" { + errStr := fmt.Sprintf("Request Error [network is empty]") response.SetHttpCode(http.StatusBadRequest).FailCode(c, http.StatusBadRequest, errStr) return } //2. recall service - result, err := operator.GetSupportEntrypointExecute(&request) + result, err := operator.GetSupportEntrypointExecute(network) if err != nil { errStr := fmt.Sprintf("%v", err) response.SetHttpCode(http.StatusInternalServerError).FailCode(c, http.StatusInternalServerError, errStr) diff --git a/rpc_server/api/v1/get_support_strategy.go b/rpc_server/api/v1/get_support_strategy.go index 76ce005a..63b587e1 100644 --- a/rpc_server/api/v1/get_support_strategy.go +++ b/rpc_server/api/v1/get_support_strategy.go @@ -17,22 +17,15 @@ import ( // @Router /api/v1/get-support-strategy [GET] // @Security JWT func GetSupportStrategy(c *gin.Context) { - request := model.GetSupportStrategyRequest{} response := model.GetResponse() - - //1. API validate - if err := c.ShouldBindJSON(&request); err != nil { - errStr := fmt.Sprintf("Request Error [%v]", err) - response.SetHttpCode(http.StatusBadRequest).FailCode(c, http.StatusBadRequest, errStr) - return - } - if err := request.Validate(); err != nil { - errStr := fmt.Sprintf("Request Error [%v]", err) + network := c.Query("network") + if network == "" { + errStr := fmt.Sprintf("Request Error [network is empty]") response.SetHttpCode(http.StatusBadRequest).FailCode(c, http.StatusBadRequest, errStr) return } - if result, err := operator.GetSupportStrategyExecute(&request); err != nil { + if result, err := operator.GetSupportStrategyExecute(network); err != nil { errStr := fmt.Sprintf("%v", err) response.SetHttpCode(http.StatusInternalServerError).FailCode(c, http.StatusInternalServerError, errStr) return diff --git a/rpc_server/api/v1/try_pay_user_operation.go b/rpc_server/api/v1/try_pay_user_operation.go index b9ce5e1a..2694e26f 100644 --- a/rpc_server/api/v1/try_pay_user_operation.go +++ b/rpc_server/api/v1/try_pay_user_operation.go @@ -40,7 +40,7 @@ func TryPayUserOperation(c *gin.Context) { response.SetHttpCode(http.StatusInternalServerError).FailCode(c, http.StatusInternalServerError, errStr) return } else { - response.WithData(result).Success(c) + response.WithDataSuccess(c, result) return } } diff --git a/service/operator/get_support_entry_point_execute.go b/service/operator/get_support_entry_point_execute.go index b3f5cd9c..6c17a7b9 100644 --- a/service/operator/get_support_entry_point_execute.go +++ b/service/operator/get_support_entry_point_execute.go @@ -2,6 +2,8 @@ package operator import "AAStarCommunity/EthPaymaster_BackService/common/model" -func GetSupportEntrypointExecute(request *model.GetSupportEntrypointRequest) (*model.Result, error) { - return &model.Result{}, nil +func GetSupportEntrypointExecute(network string) (*model.GetSupportEntryPointResponse, error) { + return &model.GetSupportEntryPointResponse{ + EntrypointDomains: make([]model.EntrypointDomain, 0), + }, nil } diff --git a/service/operator/get_support_strategy_execute.go b/service/operator/get_support_strategy_execute.go index b0cd18f4..8fe58223 100644 --- a/service/operator/get_support_strategy_execute.go +++ b/service/operator/get_support_strategy_execute.go @@ -4,6 +4,6 @@ import ( "AAStarCommunity/EthPaymaster_BackService/common/model" ) -func GetSupportStrategyExecute(request *model.GetSupportStrategyRequest) (*model.Result, error) { +func GetSupportStrategyExecute(network string) (*model.Result, error) { return &model.Result{}, nil } diff --git a/service/operator/try_pay_user_op_execute.go b/service/operator/try_pay_user_op_execute.go index f7c01853..6144587b 100644 --- a/service/operator/try_pay_user_op_execute.go +++ b/service/operator/try_pay_user_op_execute.go @@ -12,7 +12,7 @@ import ( "golang.org/x/xerrors" ) -func TryPayUserOpExecute(request *model.TryPayUserOpRequest) (*model.Result, error) { +func TryPayUserOpExecute(request *model.TryPayUserOpRequest) (*model.TryPayUserOpResponse, error) { // validator if err := businessParamValidate(request); err != nil { return nil, err @@ -46,7 +46,7 @@ func TryPayUserOpExecute(request *model.TryPayUserOpRequest) (*model.Result, err return nil, payError } paymasterSignature := getPayMasterSignature(strategy, &userOp) - var result = model.TryPayUserOpResponse{ + var result = &model.TryPayUserOpResponse{ StrategyId: strategy.Id, EntryPointAddress: strategy.EntryPointAddress, PayMasterAddress: strategy.PayMasterAddress, @@ -55,12 +55,7 @@ func TryPayUserOpExecute(request *model.TryPayUserOpRequest) (*model.Result, err GasInfo: gasResponse, } - return &model.Result{ - Code: 200, - Data: result, - Message: "message", - Cost: "cost", - }, nil + return result, nil } func businessParamValidate(request *model.TryPayUserOpRequest) error {