From 8feca959d4db687be58a6ad7da5b78e2dfc57a1a Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 23 Nov 2022 17:14:22 +0100 Subject: [PATCH] internal/server/parse_request.go: move api factory code into its own function in api package: api.Make() --- internal/api/make.go | 21 +++++++++++++++++++++ internal/server/parse_request.go | 14 +------------- 2 files changed, 22 insertions(+), 13 deletions(-) create mode 100644 internal/api/make.go diff --git a/internal/api/make.go b/internal/api/make.go new file mode 100644 index 0000000..8c3a300 --- /dev/null +++ b/internal/api/make.go @@ -0,0 +1,21 @@ +package api + +import ( + "fmt" +) + +func Make(name string, args ApiArguments) (ApiInterface, error) { + factories := map[string]Factory{ + "v1": EosioV1Factory, + "v2": EosioV2Factory, + "contract": AtomicAssetFactory, + "atomic": AtomicAssetFactory, + "debug": DebugApiFactory, + } + + if factory, ok := factories[name]; ok { + return factory(args), nil + } + + return nil, fmt.Errorf("invalid API '%s'", name) +} diff --git a/internal/server/parse_request.go b/internal/server/parse_request.go index f640f9e..ffbf92c 100644 --- a/internal/server/parse_request.go +++ b/internal/server/parse_request.go @@ -33,14 +33,6 @@ func ParseArguments(args []string) api.ApiArguments { } func ParseRequest(request string) (api.ApiInterface, error) { - factories := map[string]api.Factory{ - "v1": api.EosioV1Factory, - "v2": api.EosioV2Factory, - "contract": api.AtomicAssetFactory, - "atomic": api.AtomicAssetFactory, - "debug": api.DebugApiFactory, - } - // Parse arguments. // ------------------- p := strings.Split(strings.TrimSpace(request), "|") @@ -51,9 +43,5 @@ func ParseRequest(request string) (api.ApiInterface, error) { a := ParseArguments(p[1:]) - if factory, ok := factories[p[0]]; ok { - return factory(a), nil - } - - return nil, fmt.Errorf("invalid API '%s'", p[0]) + return api.Make(p[0], a) }