Compare commits

..

No commits in common. "main" and "4fd71945e9bf81cf8cb6355b20abab0d3a2586b2" have entirely different histories.

29 changed files with 15 additions and 8696 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +0,0 @@
package: gen
generate:
models: true
output: api/gen/InvestAccnt-type.gen.go

View File

@ -1,38 +0,0 @@
environment: development
server:
host: 0.0.0.0
port: 8077
base_path: /v1
timeout:
server: 30
read: 15
write: 10
idle: 5
folders:
data: ./data
static: ./static
config: ./config
hosts:
dataSource:
load: false
overwrite: false
support:
level: 3
authn51:
providers:
bearer:
default_user: guest
secret: password
basic:
default_user: guest
password: password
apikey:
api_value:

View File

@ -1,21 +0,0 @@
package api
import (
"net/http"
"github.com/labstack/echo/v4"
"sku61.com/InvestAccnt/api/gen"
)
func (self *BianApiService) GetInvestments(ctx echo.Context, params gen.GetInvestmentsParams) error {
self.Lock.Lock()
defer self.Lock.Unlock()
message := "GetInvestments service API not implemented"
status := "DM00501"
return sendGeneralError(ctx, http.StatusNotImplemented, message, status, "Implement the API code", "")
}

View File

@ -1,21 +0,0 @@
package api
import (
"net/http"
"github.com/labstack/echo/v4"
"sku61.com/InvestAccnt/api/gen"
)
func (self *BianApiService) GetInvestmentsDetails(ctx echo.Context, params gen.GetInvestmentsDetailsParams) error {
self.Lock.Lock()
defer self.Lock.Unlock()
message := "GetInvestmentsDetails service API not implemented"
status := "DM00501"
return sendGeneralError(ctx, http.StatusNotImplemented, message, status, "Implement the API code", "")
}

View File

@ -1,21 +0,0 @@
package api
import (
"net/http"
"github.com/labstack/echo/v4"
"sku61.com/InvestAccnt/api/gen"
)
func (self *BianApiService) GetInvestmentsInvestmentAccountId(ctx echo.Context, investmentAccountId string, params gen.GetInvestmentsInvestmentAccountIdParams) error {
self.Lock.Lock()
defer self.Lock.Unlock()
message := "GetInvestmentsInvestmentAccountId service API not implemented"
status := "DM00501"
return sendGeneralError(ctx, http.StatusNotImplemented, message, status, "Implement the API code", "")
}

View File

@ -1,21 +0,0 @@
package api
import (
"net/http"
"github.com/labstack/echo/v4"
"sku61.com/InvestAccnt/api/gen"
)
func (self *BianApiService) GetInvestmentsInvestmentAccountIdAuthorisation(ctx echo.Context, investmentAccountId string, params gen.GetInvestmentsInvestmentAccountIdAuthorisationParams) error {
self.Lock.Lock()
defer self.Lock.Unlock()
message := "GetInvestmentsInvestmentAccountIdAuthorisation service API not implemented"
status := "DM00501"
return sendGeneralError(ctx, http.StatusNotImplemented, message, status, "Implement the API code", "")
}

View File

@ -1,21 +0,0 @@
package api
import (
"net/http"
"github.com/labstack/echo/v4"
"sku61.com/InvestAccnt/api/gen"
)
func (self *BianApiService) GetInvestmentsInvestmentAccountIdDetails(ctx echo.Context, investmentAccountId string, params gen.GetInvestmentsInvestmentAccountIdDetailsParams) error {
self.Lock.Lock()
defer self.Lock.Unlock()
message := "GetInvestmentsInvestmentAccountIdDetails service API not implemented"
status := "DM00501"
return sendGeneralError(ctx, http.StatusNotImplemented, message, status, "Implement the API code", "")
}

View File

@ -1,21 +0,0 @@
package api
import (
"net/http"
"github.com/labstack/echo/v4"
"sku61.com/InvestAccnt/api/gen"
)
func (self *BianApiService) GetInvestmentsInvestmentAccountIdHoldingsHoldingId(ctx echo.Context, investmentAccountId string, holdingId string, params gen.GetInvestmentsInvestmentAccountIdHoldingsHoldingIdParams) error {
self.Lock.Lock()
defer self.Lock.Unlock()
message := "GetInvestmentsInvestmentAccountIdHoldingsHoldingId service API not implemented"
status := "DM00501"
return sendGeneralError(ctx, http.StatusNotImplemented, message, status, "Implement the API code", "")
}

View File

@ -1,21 +0,0 @@
package api
import (
"net/http"
"github.com/labstack/echo/v4"
"sku61.com/InvestAccnt/api/gen"
)
func (self *BianApiService) GetSearch(ctx echo.Context, params gen.GetSearchParams) error {
self.Lock.Lock()
defer self.Lock.Unlock()
message := "GetSearch service API not implemented"
status := "DM00501"
return sendGeneralError(ctx, http.StatusNotImplemented, message, status, "Implement the API code", "")
}

View File

@ -1,21 +0,0 @@
package api
import (
"net/http"
"github.com/labstack/echo/v4"
"sku61.com/InvestAccnt/api/gen"
)
func (self *BianApiService) GetStatus(ctx echo.Context, params gen.GetStatusParams) error {
self.Lock.Lock()
defer self.Lock.Unlock()
message := "GetStatus service API not implemented"
status := "DM00501"
return sendGeneralError(ctx, http.StatusNotImplemented, message, status, "Implement the API code", "")
}

View File

@ -1,21 +0,0 @@
package api
import (
"net/http"
"github.com/labstack/echo/v4"
"sku61.com/InvestAccnt/api/gen"
)
func (self *BianApiService) PostInvestmentsInvestmentAccountId(ctx echo.Context, investmentAccountId string, params gen.PostInvestmentsInvestmentAccountIdParams) error {
self.Lock.Lock()
defer self.Lock.Unlock()
message := "PostInvestmentsInvestmentAccountId service API not implemented"
status := "DM00501"
return sendGeneralError(ctx, http.StatusNotImplemented, message, status, "Implement the API code", "")
}

View File

@ -1,21 +0,0 @@
package api
import (
"net/http"
"github.com/labstack/echo/v4"
"sku61.com/InvestAccnt/api/gen"
)
func (self *BianApiService) PostRegister(ctx echo.Context, params gen.PostRegisterParams) error {
self.Lock.Lock()
defer self.Lock.Unlock()
message := "PostRegister service API not implemented"
status := "DM00501"
return sendGeneralError(ctx, http.StatusNotImplemented, message, status, "Implement the API code", "")
}

View File

@ -1,21 +0,0 @@
package api
import (
"net/http"
"github.com/labstack/echo/v4"
"sku61.com/InvestAccnt/api/gen"
)
func (self *BianApiService) PostSearch(ctx echo.Context, params gen.PostSearchParams) error {
self.Lock.Lock()
defer self.Lock.Unlock()
message := "PostSearch service API not implemented"
status := "DM00501"
return sendGeneralError(ctx, http.StatusNotImplemented, message, status, "Implement the API code", "")
}

View File

@ -183,4 +183,3 @@ func ParseFlags(configPath string) (*SoftwareConfiguration, error) {
return config, nil return config, nil
} }

View File

@ -1,932 +0,0 @@
// Package gen provides primitives to interact with the openapi HTTP API.
//
// Code generated by unknown module path version unknown version DO NOT EDIT.
package gen
import (
"bytes"
"compress/gzip"
"encoding/base64"
"fmt"
"net/http"
"net/url"
"path"
"strings"
"github.com/deepmap/oapi-codegen/pkg/runtime"
"github.com/getkin/kin-openapi/openapi3"
"github.com/labstack/echo/v4"
)
// ServerInterface represents all server handlers.
type ServerInterface interface {
// Service domain health
// (GET /health)
GetHealth(ctx echo.Context) error
// List of investment accounts
// (GET /investments/)
GetInvestments(ctx echo.Context, params GetInvestmentsParams) error
// Investment accounts
// (GET /investments/details)
GetInvestmentsDetails(ctx echo.Context, params GetInvestmentsDetailsParams) error
// List holdings linked to investment account.
// (GET /investments/{investment_account_id})
GetInvestmentsInvestmentAccountId(ctx echo.Context, investmentAccountId string, params GetInvestmentsInvestmentAccountIdParams) error
// Create a holding
// (POST /investments/{investment_account_id})
PostInvestmentsInvestmentAccountId(ctx echo.Context, investmentAccountId string, params PostInvestmentsInvestmentAccountIdParams) error
// (GET /investments/{investment_account_id}/authorisation)
GetInvestmentsInvestmentAccountIdAuthorisation(ctx echo.Context, investmentAccountId string, params GetInvestmentsInvestmentAccountIdAuthorisationParams) error
// Details on the investment account
// (GET /investments/{investment_account_id}/details)
GetInvestmentsInvestmentAccountIdDetails(ctx echo.Context, investmentAccountId string, params GetInvestmentsInvestmentAccountIdDetailsParams) error
// Fetch holding information
// (GET /investments/{investment_account_id}/holdings/{holding_id})
GetInvestmentsInvestmentAccountIdHoldingsHoldingId(ctx echo.Context, investmentAccountId string, holdingId string, params GetInvestmentsInvestmentAccountIdHoldingsHoldingIdParams) error
// Request to create a new investment account
// (POST /register)
PostRegister(ctx echo.Context, params PostRegisterParams) error
// Search service on indexed data
// (GET /search)
GetSearch(ctx echo.Context, params GetSearchParams) error
// Search service on indexed data using complex criteria
// (POST /search)
PostSearch(ctx echo.Context, params PostSearchParams) error
// Retrieve a customer status
// (GET /status)
GetStatus(ctx echo.Context, params GetStatusParams) error
}
// ServerInterfaceWrapper converts echo contexts to parameters.
type ServerInterfaceWrapper struct {
Handler ServerInterface
}
// GetHealth converts echo context to params.
func (w *ServerInterfaceWrapper) GetHealth(ctx echo.Context) error {
var err error
ctx.Set(BasicAuthScopes, []string{""})
ctx.Set(ApiKeyScopes, []string{""})
ctx.Set(BearerAuthScopes, []string{""})
// Invoke the callback with all the unmarshalled arguments
err = w.Handler.GetHealth(ctx)
return err
}
// GetInvestments converts echo context to params.
func (w *ServerInterfaceWrapper) GetInvestments(ctx echo.Context) error {
var err error
ctx.Set(BasicAuthScopes, []string{""})
ctx.Set(ApiKeyScopes, []string{""})
ctx.Set(BearerAuthScopes, []string{""})
// Parameter object where we will unmarshal all parameters from the context
var params GetInvestmentsParams
headers := ctx.Request().Header
// ------------- Optional header parameter "X-CustomerID" -------------
if valueList, found := headers[http.CanonicalHeaderKey("X-CustomerID")]; found {
var XCustomerID string
n := len(valueList)
if n != 1 {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for X-CustomerID, got %d", n))
}
err = runtime.BindStyledParameterWithLocation("simple", false, "X-CustomerID", runtime.ParamLocationHeader, valueList[0], &XCustomerID)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter X-CustomerID: %s", err))
}
params.XCustomerID = &XCustomerID
}
// Invoke the callback with all the unmarshalled arguments
err = w.Handler.GetInvestments(ctx, params)
return err
}
// GetInvestmentsDetails converts echo context to params.
func (w *ServerInterfaceWrapper) GetInvestmentsDetails(ctx echo.Context) error {
var err error
ctx.Set(BasicAuthScopes, []string{""})
ctx.Set(ApiKeyScopes, []string{""})
ctx.Set(BearerAuthScopes, []string{""})
// Parameter object where we will unmarshal all parameters from the context
var params GetInvestmentsDetailsParams
// ------------- Optional query parameter "investorid" -------------
err = runtime.BindQueryParameter("form", true, false, "investorid", ctx.QueryParams(), &params.Investorid)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter investorid: %s", err))
}
headers := ctx.Request().Header
// ------------- Optional header parameter "X-CustomerId" -------------
if valueList, found := headers[http.CanonicalHeaderKey("X-CustomerId")]; found {
var XCustomerId string
n := len(valueList)
if n != 1 {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for X-CustomerId, got %d", n))
}
err = runtime.BindStyledParameterWithLocation("simple", false, "X-CustomerId", runtime.ParamLocationHeader, valueList[0], &XCustomerId)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter X-CustomerId: %s", err))
}
params.XCustomerId = &XCustomerId
}
// Invoke the callback with all the unmarshalled arguments
err = w.Handler.GetInvestmentsDetails(ctx, params)
return err
}
// GetInvestmentsInvestmentAccountId converts echo context to params.
func (w *ServerInterfaceWrapper) GetInvestmentsInvestmentAccountId(ctx echo.Context) error {
var err error
// ------------- Path parameter "investment_account_id" -------------
var investmentAccountId string
err = runtime.BindStyledParameterWithLocation("simple", false, "investment_account_id", runtime.ParamLocationPath, ctx.Param("investment_account_id"), &investmentAccountId)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter investment_account_id: %s", err))
}
ctx.Set(BasicAuthScopes, []string{""})
ctx.Set(ApiKeyScopes, []string{""})
ctx.Set(BearerAuthScopes, []string{""})
// Parameter object where we will unmarshal all parameters from the context
var params GetInvestmentsInvestmentAccountIdParams
headers := ctx.Request().Header
// ------------- Optional header parameter "X-CustomerId" -------------
if valueList, found := headers[http.CanonicalHeaderKey("X-CustomerId")]; found {
var XCustomerId string
n := len(valueList)
if n != 1 {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for X-CustomerId, got %d", n))
}
err = runtime.BindStyledParameterWithLocation("simple", false, "X-CustomerId", runtime.ParamLocationHeader, valueList[0], &XCustomerId)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter X-CustomerId: %s", err))
}
params.XCustomerId = &XCustomerId
}
// Invoke the callback with all the unmarshalled arguments
err = w.Handler.GetInvestmentsInvestmentAccountId(ctx, investmentAccountId, params)
return err
}
// PostInvestmentsInvestmentAccountId converts echo context to params.
func (w *ServerInterfaceWrapper) PostInvestmentsInvestmentAccountId(ctx echo.Context) error {
var err error
// ------------- Path parameter "investment_account_id" -------------
var investmentAccountId string
err = runtime.BindStyledParameterWithLocation("simple", false, "investment_account_id", runtime.ParamLocationPath, ctx.Param("investment_account_id"), &investmentAccountId)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter investment_account_id: %s", err))
}
ctx.Set(BasicAuthScopes, []string{""})
ctx.Set(ApiKeyScopes, []string{""})
ctx.Set(BearerAuthScopes, []string{""})
// Parameter object where we will unmarshal all parameters from the context
var params PostInvestmentsInvestmentAccountIdParams
headers := ctx.Request().Header
// ------------- Optional header parameter "X-CustomerId" -------------
if valueList, found := headers[http.CanonicalHeaderKey("X-CustomerId")]; found {
var XCustomerId string
n := len(valueList)
if n != 1 {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for X-CustomerId, got %d", n))
}
err = runtime.BindStyledParameterWithLocation("simple", false, "X-CustomerId", runtime.ParamLocationHeader, valueList[0], &XCustomerId)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter X-CustomerId: %s", err))
}
params.XCustomerId = &XCustomerId
}
// Invoke the callback with all the unmarshalled arguments
err = w.Handler.PostInvestmentsInvestmentAccountId(ctx, investmentAccountId, params)
return err
}
// GetInvestmentsInvestmentAccountIdAuthorisation converts echo context to params.
func (w *ServerInterfaceWrapper) GetInvestmentsInvestmentAccountIdAuthorisation(ctx echo.Context) error {
var err error
// ------------- Path parameter "investment_account_id" -------------
var investmentAccountId string
err = runtime.BindStyledParameterWithLocation("simple", false, "investment_account_id", runtime.ParamLocationPath, ctx.Param("investment_account_id"), &investmentAccountId)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter investment_account_id: %s", err))
}
ctx.Set(BasicAuthScopes, []string{""})
ctx.Set(ApiKeyScopes, []string{""})
ctx.Set(BearerAuthScopes, []string{""})
// Parameter object where we will unmarshal all parameters from the context
var params GetInvestmentsInvestmentAccountIdAuthorisationParams
headers := ctx.Request().Header
// ------------- Optional header parameter "X-CustomerID" -------------
if valueList, found := headers[http.CanonicalHeaderKey("X-CustomerID")]; found {
var XCustomerID string
n := len(valueList)
if n != 1 {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for X-CustomerID, got %d", n))
}
err = runtime.BindStyledParameterWithLocation("simple", false, "X-CustomerID", runtime.ParamLocationHeader, valueList[0], &XCustomerID)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter X-CustomerID: %s", err))
}
params.XCustomerID = &XCustomerID
}
// Invoke the callback with all the unmarshalled arguments
err = w.Handler.GetInvestmentsInvestmentAccountIdAuthorisation(ctx, investmentAccountId, params)
return err
}
// GetInvestmentsInvestmentAccountIdDetails converts echo context to params.
func (w *ServerInterfaceWrapper) GetInvestmentsInvestmentAccountIdDetails(ctx echo.Context) error {
var err error
// ------------- Path parameter "investment_account_id" -------------
var investmentAccountId string
err = runtime.BindStyledParameterWithLocation("simple", false, "investment_account_id", runtime.ParamLocationPath, ctx.Param("investment_account_id"), &investmentAccountId)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter investment_account_id: %s", err))
}
ctx.Set(BasicAuthScopes, []string{""})
ctx.Set(ApiKeyScopes, []string{""})
ctx.Set(BearerAuthScopes, []string{""})
// Parameter object where we will unmarshal all parameters from the context
var params GetInvestmentsInvestmentAccountIdDetailsParams
headers := ctx.Request().Header
// ------------- Optional header parameter "X-CustomerID" -------------
if valueList, found := headers[http.CanonicalHeaderKey("X-CustomerID")]; found {
var XCustomerID string
n := len(valueList)
if n != 1 {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for X-CustomerID, got %d", n))
}
err = runtime.BindStyledParameterWithLocation("simple", false, "X-CustomerID", runtime.ParamLocationHeader, valueList[0], &XCustomerID)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter X-CustomerID: %s", err))
}
params.XCustomerID = &XCustomerID
}
// Invoke the callback with all the unmarshalled arguments
err = w.Handler.GetInvestmentsInvestmentAccountIdDetails(ctx, investmentAccountId, params)
return err
}
// GetInvestmentsInvestmentAccountIdHoldingsHoldingId converts echo context to params.
func (w *ServerInterfaceWrapper) GetInvestmentsInvestmentAccountIdHoldingsHoldingId(ctx echo.Context) error {
var err error
// ------------- Path parameter "investment_account_id" -------------
var investmentAccountId string
err = runtime.BindStyledParameterWithLocation("simple", false, "investment_account_id", runtime.ParamLocationPath, ctx.Param("investment_account_id"), &investmentAccountId)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter investment_account_id: %s", err))
}
// ------------- Path parameter "holding_id" -------------
var holdingId string
err = runtime.BindStyledParameterWithLocation("simple", false, "holding_id", runtime.ParamLocationPath, ctx.Param("holding_id"), &holdingId)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter holding_id: %s", err))
}
ctx.Set(BasicAuthScopes, []string{""})
ctx.Set(ApiKeyScopes, []string{""})
ctx.Set(BearerAuthScopes, []string{""})
// Parameter object where we will unmarshal all parameters from the context
var params GetInvestmentsInvestmentAccountIdHoldingsHoldingIdParams
headers := ctx.Request().Header
// ------------- Optional header parameter "X-CustomerId" -------------
if valueList, found := headers[http.CanonicalHeaderKey("X-CustomerId")]; found {
var XCustomerId string
n := len(valueList)
if n != 1 {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for X-CustomerId, got %d", n))
}
err = runtime.BindStyledParameterWithLocation("simple", false, "X-CustomerId", runtime.ParamLocationHeader, valueList[0], &XCustomerId)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter X-CustomerId: %s", err))
}
params.XCustomerId = &XCustomerId
}
// Invoke the callback with all the unmarshalled arguments
err = w.Handler.GetInvestmentsInvestmentAccountIdHoldingsHoldingId(ctx, investmentAccountId, holdingId, params)
return err
}
// PostRegister converts echo context to params.
func (w *ServerInterfaceWrapper) PostRegister(ctx echo.Context) error {
var err error
ctx.Set(BasicAuthScopes, []string{""})
ctx.Set(ApiKeyScopes, []string{""})
ctx.Set(BearerAuthScopes, []string{""})
// Parameter object where we will unmarshal all parameters from the context
var params PostRegisterParams
headers := ctx.Request().Header
// ------------- Optional header parameter "X-CustomerID" -------------
if valueList, found := headers[http.CanonicalHeaderKey("X-CustomerID")]; found {
var XCustomerID string
n := len(valueList)
if n != 1 {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for X-CustomerID, got %d", n))
}
err = runtime.BindStyledParameterWithLocation("simple", false, "X-CustomerID", runtime.ParamLocationHeader, valueList[0], &XCustomerID)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter X-CustomerID: %s", err))
}
params.XCustomerID = &XCustomerID
}
// Invoke the callback with all the unmarshalled arguments
err = w.Handler.PostRegister(ctx, params)
return err
}
// GetSearch converts echo context to params.
func (w *ServerInterfaceWrapper) GetSearch(ctx echo.Context) error {
var err error
ctx.Set(BasicAuthScopes, []string{""})
ctx.Set(ApiKeyScopes, []string{""})
ctx.Set(BearerAuthScopes, []string{""})
// Parameter object where we will unmarshal all parameters from the context
var params GetSearchParams
// ------------- Required query parameter "q" -------------
err = runtime.BindQueryParameter("form", true, true, "q", ctx.QueryParams(), &params.Q)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter q: %s", err))
}
headers := ctx.Request().Header
// ------------- Optional header parameter "x-v" -------------
if valueList, found := headers[http.CanonicalHeaderKey("x-v")]; found {
var XV int
n := len(valueList)
if n != 1 {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for x-v, got %d", n))
}
err = runtime.BindStyledParameterWithLocation("simple", false, "x-v", runtime.ParamLocationHeader, valueList[0], &XV)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter x-v: %s", err))
}
params.XV = &XV
}
// ------------- Optional header parameter "x-min-v" -------------
if valueList, found := headers[http.CanonicalHeaderKey("x-min-v")]; found {
var XMinV int
n := len(valueList)
if n != 1 {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for x-min-v, got %d", n))
}
err = runtime.BindStyledParameterWithLocation("simple", false, "x-min-v", runtime.ParamLocationHeader, valueList[0], &XMinV)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter x-min-v: %s", err))
}
params.XMinV = &XMinV
}
// ------------- Optional header parameter "x-fapi-interaction-id" -------------
if valueList, found := headers[http.CanonicalHeaderKey("x-fapi-interaction-id")]; found {
var XFapiInteractionId string
n := len(valueList)
if n != 1 {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for x-fapi-interaction-id, got %d", n))
}
err = runtime.BindStyledParameterWithLocation("simple", false, "x-fapi-interaction-id", runtime.ParamLocationHeader, valueList[0], &XFapiInteractionId)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter x-fapi-interaction-id: %s", err))
}
params.XFapiInteractionId = &XFapiInteractionId
}
// Invoke the callback with all the unmarshalled arguments
err = w.Handler.GetSearch(ctx, params)
return err
}
// PostSearch converts echo context to params.
func (w *ServerInterfaceWrapper) PostSearch(ctx echo.Context) error {
var err error
ctx.Set(BasicAuthScopes, []string{""})
ctx.Set(ApiKeyScopes, []string{""})
ctx.Set(BearerAuthScopes, []string{""})
// Parameter object where we will unmarshal all parameters from the context
var params PostSearchParams
headers := ctx.Request().Header
// ------------- Optional header parameter "x-v" -------------
if valueList, found := headers[http.CanonicalHeaderKey("x-v")]; found {
var XV int
n := len(valueList)
if n != 1 {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for x-v, got %d", n))
}
err = runtime.BindStyledParameterWithLocation("simple", false, "x-v", runtime.ParamLocationHeader, valueList[0], &XV)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter x-v: %s", err))
}
params.XV = &XV
}
// ------------- Optional header parameter "x-min-v" -------------
if valueList, found := headers[http.CanonicalHeaderKey("x-min-v")]; found {
var XMinV int
n := len(valueList)
if n != 1 {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for x-min-v, got %d", n))
}
err = runtime.BindStyledParameterWithLocation("simple", false, "x-min-v", runtime.ParamLocationHeader, valueList[0], &XMinV)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter x-min-v: %s", err))
}
params.XMinV = &XMinV
}
// ------------- Optional header parameter "x-fapi-interaction-id" -------------
if valueList, found := headers[http.CanonicalHeaderKey("x-fapi-interaction-id")]; found {
var XFapiInteractionId string
n := len(valueList)
if n != 1 {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for x-fapi-interaction-id, got %d", n))
}
err = runtime.BindStyledParameterWithLocation("simple", false, "x-fapi-interaction-id", runtime.ParamLocationHeader, valueList[0], &XFapiInteractionId)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter x-fapi-interaction-id: %s", err))
}
params.XFapiInteractionId = &XFapiInteractionId
}
// Invoke the callback with all the unmarshalled arguments
err = w.Handler.PostSearch(ctx, params)
return err
}
// GetStatus converts echo context to params.
func (w *ServerInterfaceWrapper) GetStatus(ctx echo.Context) error {
var err error
ctx.Set(BasicAuthScopes, []string{""})
ctx.Set(ApiKeyScopes, []string{""})
ctx.Set(BearerAuthScopes, []string{""})
// Parameter object where we will unmarshal all parameters from the context
var params GetStatusParams
headers := ctx.Request().Header
// ------------- Optional header parameter "X-CustomerID" -------------
if valueList, found := headers[http.CanonicalHeaderKey("X-CustomerID")]; found {
var XCustomerID string
n := len(valueList)
if n != 1 {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for X-CustomerID, got %d", n))
}
err = runtime.BindStyledParameterWithLocation("simple", false, "X-CustomerID", runtime.ParamLocationHeader, valueList[0], &XCustomerID)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter X-CustomerID: %s", err))
}
params.XCustomerID = &XCustomerID
}
// Invoke the callback with all the unmarshalled arguments
err = w.Handler.GetStatus(ctx, params)
return err
}
// This is a simple interface which specifies echo.Route addition functions which
// are present on both echo.Echo and echo.Group, since we want to allow using
// either of them for path registration
type EchoRouter interface {
CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
}
// RegisterHandlers adds each server route to the EchoRouter.
func RegisterHandlers(router EchoRouter, si ServerInterface) {
RegisterHandlersWithBaseURL(router, si, "")
}
// Registers handlers, and prepends BaseURL to the paths, so that the paths
// can be served under a prefix.
func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL string) {
wrapper := ServerInterfaceWrapper{
Handler: si,
}
router.GET(baseURL+"/health", wrapper.GetHealth)
router.GET(baseURL+"/investments/", wrapper.GetInvestments)
router.GET(baseURL+"/investments/details", wrapper.GetInvestmentsDetails)
router.GET(baseURL+"/investments/:investment_account_id", wrapper.GetInvestmentsInvestmentAccountId)
router.POST(baseURL+"/investments/:investment_account_id", wrapper.PostInvestmentsInvestmentAccountId)
router.GET(baseURL+"/investments/:investment_account_id/authorisation", wrapper.GetInvestmentsInvestmentAccountIdAuthorisation)
router.GET(baseURL+"/investments/:investment_account_id/details", wrapper.GetInvestmentsInvestmentAccountIdDetails)
router.GET(baseURL+"/investments/:investment_account_id/holdings/:holding_id", wrapper.GetInvestmentsInvestmentAccountIdHoldingsHoldingId)
router.POST(baseURL+"/register", wrapper.PostRegister)
router.GET(baseURL+"/search", wrapper.GetSearch)
router.POST(baseURL+"/search", wrapper.PostSearch)
router.GET(baseURL+"/status", wrapper.GetStatus)
}
// Base64 encoded, gzipped, json marshaled Swagger object
var swaggerSpec = []string{
"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",
}
// GetSwagger returns the content of the embedded swagger specification file
// or error if failed to decode
func decodeSpec() ([]byte, error) {
zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, ""))
if err != nil {
return nil, fmt.Errorf("error base64 decoding spec: %s", err)
}
zr, err := gzip.NewReader(bytes.NewReader(zipped))
if err != nil {
return nil, fmt.Errorf("error decompressing spec: %s", err)
}
var buf bytes.Buffer
_, err = buf.ReadFrom(zr)
if err != nil {
return nil, fmt.Errorf("error decompressing spec: %s", err)
}
return buf.Bytes(), nil
}
var rawSpec = decodeSpecCached()
// a naive cached of a decoded swagger spec
func decodeSpecCached() func() ([]byte, error) {
data, err := decodeSpec()
return func() ([]byte, error) {
return data, err
}
}
// Constructs a synthetic filesystem for resolving external references when loading openapi specifications.
func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) {
var res = make(map[string]func() ([]byte, error))
if len(pathToFile) > 0 {
res[pathToFile] = rawSpec
}
return res
}
// GetSwagger returns the Swagger specification corresponding to the generated code
// in this file. The external references of Swagger specification are resolved.
// The logic of resolving external references is tightly connected to "import-mapping" feature.
// Externally referenced files must be embedded in the corresponding golang packages.
// Urls can be supported but this task was out of the scope.
func GetSwagger() (swagger *openapi3.T, err error) {
var resolvePath = PathToRawSpec("")
loader := openapi3.NewLoader()
loader.IsExternalRefsAllowed = true
loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) {
var pathToFile = url.String()
pathToFile = path.Clean(pathToFile)
getSpec, ok := resolvePath[pathToFile]
if !ok {
err1 := fmt.Errorf("path not found: %s", pathToFile)
return nil, err1
}
return getSpec()
}
var specData []byte
specData, err = rawSpec()
if err != nil {
return
}
swagger, err = loader.LoadFromData(specData)
if err != nil {
return
}
return
}

File diff suppressed because it is too large Load Diff

View File

@ -5,17 +5,16 @@ import (
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"sku61.com/InvestAccnt/api/gen" "{{moduleName}}/api/gen"
) )
func (self *BianApiService) { func (self *BianApiService) {{servicesign}} {
self.Lock.Lock() self.Lock.Lock()
defer self.Lock.Unlock() defer self.Lock.Unlock()
message := " service API not implemented" message := "{{funcName}} service API not implemented"
status := "DM00501" status := "DM00501"
return sendGeneralError(ctx, http.StatusNotImplemented, message, status, "Implement the API code", "") return sendGeneralError(ctx, http.StatusNotImplemented, message, status, "Implement the API code", "")
} }

View File

@ -6,7 +6,7 @@ import (
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"sku61.com/InvestAccnt/api/gen" "{{moduleName}}/api/gen"
) )
@ -96,4 +96,3 @@ func (self *BianApiService) newHealthModelChecks() gen.HealthModel_Checks {
} }

View File

@ -8,8 +8,8 @@ import (
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"sku61.com/InvestAccnt/api/gen" "{{moduleName}}/api/gen"
"sku61.com/InvestAccnt/api/authn51" "{{moduleName}}/api/authn51"
) )
@ -173,4 +173,3 @@ func (self *BianApiService) RefreshToken(ctx echo.Context) error {
} }
} }

View File

@ -28,4 +28,3 @@ func browseSkipper(baseUrl string, path string) bool {
return false return false
} }

View File

@ -2,5 +2,4 @@ package: gen
generate: generate:
echo-server: true echo-server: true
embedded-spec: true embedded-spec: true
output: api/gen/InvestAccnt-server.gen.go output: api/gen/{{appShort}}-server.gen.go

View File

@ -0,0 +1,4 @@
package: gen
generate:
models: true
output: api/gen/{{appShort}}-type.gen.go

View File

@ -1,37 +0,0 @@
module sku61.com/InvestAccnt
go 1.18
require (
github.com/deepmap/oapi-codegen v1.11.0
github.com/dgrijalva/jwt-go v3.2.0+incompatible
github.com/getkin/kin-openapi v0.94.0
github.com/google/uuid v1.3.0
github.com/labstack/echo/v4 v4.7.2
gopkg.in/yaml.v2 v2.4.0
)
require (
github.com/ghodss/yaml v1.0.0 // indirect
github.com/go-openapi/jsonpointer v0.19.5 // indirect
github.com/go-openapi/swag v0.21.1 // indirect
github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
github.com/gorilla/mux v1.8.0 // indirect
github.com/invopop/yaml v0.1.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/labstack/gommon v0.4.0 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.16 // indirect
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/valyala/fasttemplate v1.2.2 // indirect
golang.org/x/crypto v0.1.0 // indirect
golang.org/x/mod v0.7.0 // indirect
golang.org/x/net v0.2.0 // indirect
golang.org/x/sys v0.2.0 // indirect
golang.org/x/text v0.4.0 // indirect
golang.org/x/time v0.0.0-20220411224347-583f2d630306 // indirect
golang.org/x/tools v0.3.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

View File

@ -1,205 +0,0 @@
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc=
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.0-20210816181553-5444fa50b93d/go.mod h1:tmAIfUFEirG/Y8jhZ9M+h36obRZAk/1fcSpXwAVlfqE=
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs=
github.com/deepmap/oapi-codegen v1.11.0 h1:f/X2NdIkaBKsSdpeuwLnY/vDI0AtPUrmB5LMgc7YD+A=
github.com/deepmap/oapi-codegen v1.11.0/go.mod h1:k+ujhoQGxmQYBZBbxhOZNZf4j08qv5mC+OH+fFTnKxM=
github.com/deepmap/oapi-codegen v1.12.4 h1:pPmn6qI9MuOtCz82WY2Xaw46EQjgvxednXXrP7g5Q2s=
github.com/deepmap/oapi-codegen v1.12.4/go.mod h1:3lgHGMu6myQ2vqbbTXH2H1o4eXFTGnFiDaOaKKl5yas=
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
github.com/getkin/kin-openapi v0.94.0 h1:bAxg2vxgnHHHoeefVdmGbR+oxtJlcv5HsJJa3qmAHuo=
github.com/getkin/kin-openapi v0.94.0/go.mod h1:LWZfzOd7PRy8GJ1dJ6mCU6tNdSfOwRac1BUPam4aw6Q=
github.com/getkin/kin-openapi v0.107.0 h1:bxhL6QArW7BXQj8NjXfIJQy680NsMKd25nwhvpCXchg=
github.com/getkin/kin-openapi v0.107.0/go.mod h1:9Dhr+FasATJZjS4iOLvB0hkaxgYdulrNYm2e9epLWOo=
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
github.com/gin-gonic/gin v1.7.7/go.mod h1:axIBovoeJpVj8S3BwE0uPMTeReE4+AfFtqpqaZ1qq1U=
github.com/go-chi/chi/v5 v5.0.7/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8=
github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
github.com/go-openapi/swag v0.21.1 h1:wm0rhTb5z7qpJRHBdPOMuY4QjVUMbF6/kwoYeRAOrKU=
github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs=
github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=
github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4=
github.com/go-playground/validator/v10 v10.11.0/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU=
github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY=
github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/invopop/yaml v0.1.0 h1:YW3WGUoJEXYfzWBjn00zIlrw7brGVD0fUKRYDPAPhrc=
github.com/invopop/yaml v0.1.0/go.mod h1:2XuRLgs/ouIrW3XNzuNj7J3Nvu/Dig5MXvbCEdiBN3Q=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/labstack/echo/v4 v4.7.2 h1:Kv2/p8OaQ+M6Ex4eGimg9b9e6icoxA42JSlOR3msKtI=
github.com/labstack/echo/v4 v4.7.2/go.mod h1:xkCDAdFCIf8jsFQ5NnbK7oqaF/yU1A1X20Ltm0OvSks=
github.com/labstack/echo/v4 v4.9.1 h1:GliPYSpzGKlyOhqIbG8nmHBo3i1saKWFOgh41AN3b+Y=
github.com/labstack/echo/v4 v4.9.1/go.mod h1:Pop5HLc+xoc4qhTZ1ip6C0RtP7Z+4VzRLWZZFKqbbjo=
github.com/labstack/gommon v0.3.1/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM=
github.com/labstack/gommon v0.4.0 h1:y7cvthEAEbU0yHOf4axH8ZG2NH8knB9iNSoTO8dyIk8=
github.com/labstack/gommon v0.4.0/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM=
github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
github.com/lestrrat-go/backoff/v2 v2.0.8/go.mod h1:rHP/q/r9aT27n24JQLa7JhSQZCKBBOiM/uP402WwN8Y=
github.com/lestrrat-go/blackmagic v1.0.0/go.mod h1:TNgH//0vYSs8VXDCfkZLgIrVTTXQELZffUV0tz3MtdQ=
github.com/lestrrat-go/blackmagic v1.0.1/go.mod h1:UrEqBzIR2U6CnzVyUtfM6oZNMt/7O7Vohk2J0OGSAtU=
github.com/lestrrat-go/httpcc v1.0.1/go.mod h1:qiltp3Mt56+55GPVCbTdM9MlqhvzyuL6W/NMDA8vA5E=
github.com/lestrrat-go/iter v1.0.1/go.mod h1:zIdgO1mRKhn8l9vrZJZz9TUMMFbQbLeTsbqPDrJ/OJc=
github.com/lestrrat-go/iter v1.0.2/go.mod h1:Momfcq3AnRlRjI5b5O8/G5/BvpzrhoFTZcn06fEOPt4=
github.com/lestrrat-go/jwx v1.2.24/go.mod h1:zoNuZymNl5lgdcu6P7K6ie2QRll5HVfF4xwxBBK1NxY=
github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I=
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/matryer/moq v0.2.7/go.mod h1:kITsx543GOENm48TUAQyJ9+SAvFSr7iGQXPoth/VUBk=
github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8=
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M=
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo=
github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220513210258-46612604a0f9/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU=
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA=
golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220513224357-95641704303c/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
golang.org/x/net v0.2.0 h1:sZfSu1wtKLGlWI4ZZayP0ck9Y73K1ynO6gqzTdBVdPU=
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220513210249-45d2b4557a2a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A=
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20220411224347-583f2d630306 h1:+gHMid33q6pen7kv9xvT+JRinntgeXO2AeZVd0AWD3w=
golang.org/x/time v0.0.0-20220411224347-583f2d630306/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
golang.org/x/tools v0.3.0 h1:SrNbZl6ECOS1qFzgTdQfWXZM9XBkiA6tkFrH9YSTPHM=
golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

Binary file not shown.

View File

@ -14,9 +14,9 @@ import (
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
echomiddleware "github.com/labstack/echo/v4/middleware" echomiddleware "github.com/labstack/echo/v4/middleware"
"sku61.com/InvestAccnt/api" "{{moduleName}}/api"
"sku61.com/InvestAccnt/api/gen" "{{moduleName}}/api/gen"
"sku61.com/InvestAccnt/api/errorh" "{{moduleName}}/api/errorh"
) )
@ -66,7 +66,7 @@ func Run(e *echo.Echo, addressPort string, timeOut time.Duration, msgLevel int)
func main() { func main() {
configPath := "../config/InvestAccnt.yaml" configPath := "./config/{{appShort}}.yaml"
softwareConfig, err := api.ParseFlags(configPath) softwareConfig, err := api.ParseFlags(configPath)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "Error loading configuration,flags\n") fmt.Fprintf(os.Stderr, "Error loading configuration,flags\n")
@ -130,4 +130,3 @@ func main() {
// And we serve HTTP until the world ends. // And we serve HTTP until the world ends.
Run(e, addressPort, timeOut, microService.Configuration.Support.Level) Run(e, addressPort, timeOut, microService.Configuration.Support.Level)
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,137 +0,0 @@
param (
[string] $baseFolder = ".",
[string] $appShort,
[string] $mainGo,
[switch] $skipApiFetch,
[switch] $skipGoFetch
)
$cd = Get-Location
Set-Location $baseFolder
$wellFile = "./.well-known/devops.json"
if (!(Test-Path $wellFile -PathType Leaf)) {
Write-Host "The specification file '$wellFile' not found" -ForegroundColor Red
Set-Location $cd
Throw "The specification file '$wellFile' not found"
}
Write-Host "Using specification file '$wellFile' " -ForegroundColor White
$devops = Get-Content $wellFile | ConvertFrom-JSON
$openApiFile = ""
$devops.apis | ForEach-Object {
if ($_.engine.url.endswith(".json") -and ($_.engine.category -eq "API") -and ($_.engine.name -eq "openapi")) {
$openApiFile = $baseFolder + $_.engine.url
}
}
if ((Test-Path -Path "./build") -eq $false) {
Write-Host "Missing './build' directory" -ForegroundColor Red
Set-Location $cd
Throw "Missing './build' directory"
}
# API Source URL
$openApiUrl = ""
if ($openApiFile -eq "" -and $skipApiFetch -eq $false) {
$openApiUrl = ""
if ($openApiFile -eq "") {
$openApiFile = "./build/openapi.json"
}
}
# Download the file
if ($openApiUrl -ne "" -and $skipApiFetch -eq $false) {
Write-Host "Fetching Open API definition"
try
{
$Response = Invoke-WebRequest -Uri $openApiUrl -OutFile $openApiFile
$StatusCode = $Response.StatusCode
Write-Host "Fetch completed"
} catch {
$StatusCode = $_.Exception.Response.StatusCode.value__
}
$StatusCode
}
# Find the Open API file
if ($openApiFile -eq "") {
Get-ChildItem Path "./build/" -Filter *.json | Foreach-Object {
$openApiFile = $_.FullName
}
}
if ($openApiFile -eq "") {
Write-Host "Missing Open API in './build' directory" -ForegroundColor Red
Set-Location $cd
Throw "Missing Open API in './build' directory"
}
$openApiFile = Resolve-Path -Path $openApiFile
if ($openApiFile -ne "./static/openapi.json") {
Copy-Item $openApiFile -Destination "./static/openapi.json"
}
Set-Location "./src"
# Find the main Go build file
if ($mainGo -eq "") {
Get-ChildItem Path "./" -Filter *.go | Foreach-Object {
$mainGo = $_.FullName
}
}
if ($mainGo -eq "") {
if ((Test-Path -Path "./servermain.go") -eq $false) {
New-Item -Path './servermain.go' -ItemType File| Out-Null
}
$mainGo = "./servermain.go"
}
if ($mainGo -eq "") {
Write-Host "Missing main Go file in current directory" -ForegroundColor Red
Set-Location $cd
Throw "Missing main Go file in current directory"
}
if ($isWindows) {
go env -w GOOS=windows
} else {
go env -w GOOS=linux
}
go env -w GOARCH=386
if ($skipGoFetch -eq $false) {
Write-Host "Fetching Go packages"
go get gopkg.in/yaml.v2
go get github.com/deepmap/oapi-codegen/pkg/codegen
go get github.com/deepmap/oapi-codegen/pkg/util
go get github.com/deepmap/oapi-codegen/pkg/types@v1.11.0
go get github.com/labstack/echo/v4/middleware@v4.7.2
go get github.com/getkin/kin-openapi/routers/gorillamux@v0.94.0
go get github.com/dgrijalva/jwt-go
}
$codeGen = $env:USERPROFILE + "/go/pkg/mod/github.com/deepmap/oapi-codegen@v1.11.0/cmd/oapi-codegen/oapi-codegen.go"
Write-Host "Generating code from $openApiFile"
go run $codeGen --config ../build/types.cfg.yaml $openApiFile
go run $codeGen --config ../build/server.cfg.yaml $openApiFile
Write-Host "Building Go executable $mainGo"
go build $mainGo
Set-Location $cd
Write-Host "Code generation completed" -ForegroundColor Green