From 022e672b883cefbdb8335de36c79627016ce7f33 Mon Sep 17 00:00:00 2001 From: Rajon Ahmed Date: Fri, 19 Jun 2026 18:47:57 +0800 Subject: [PATCH] upd: helper utility updated --- data/framework/glossary/handler.go | 88 ++++++++++++++++++++++++++++++ data/framework/metadata/handler.go | 88 ++++++++++++++++++++++++++++++ data/software/glossary/handler.go | 88 ++++++++++++++++++++++++++++++ data/software/metadata/handler.go | 88 ++++++++++++++++++++++++++++++ 4 files changed, 352 insertions(+) diff --git a/data/framework/glossary/handler.go b/data/framework/glossary/handler.go index e69de29..3d9af5d 100644 --- a/data/framework/glossary/handler.go +++ b/data/framework/glossary/handler.go @@ -0,0 +1,88 @@ +package handler + +import ( + "embed" + "encoding/json" + "errors" + + "go/module/essential/visible/service/helper/retriever" +) + +// constant +const ( + // resource + obrimHandlerResourceIdentifier = "framework/glossary" // change identifier if needed + obrimHandlerResourceFileName = "resource" // change file name if needed + obrimHandlerResourceFileExt = ".json" // do not change + + // success + ObrimHandlerCodeSuccessResourceAvailable = "SUCCESS_RESOURCE_AVAILABLE" + + // fail + ObrimHandlerCodeFailedResourceNotFound = "FAILED_RESOURCE_NOT_FOUND" + ObrimHandlerCodeFailedInvalidResource = "FAILED_INVALID_RESOURCE" +) + +// obrimHandlerEmbeddedResource stores the embedded resource file. +// +//go:embed resource.json +var obrimHandlerEmbeddedResource embed.FS + +// obrimHandlerProvider implements the Retriever JSON provider contract. +type obrimHandlerProvider struct{} + +// Retrieve loads and returns the complete parsed resource payload. +func (provider obrimHandlerProvider) Retrieve() (any, error) { + return obrimHandlerFetch() +} + +// init registers the handler during package initialization. +func init() { + obrimHandlerRegister() +} + +// obrimHandlerRegister registers the handler with Retriever. +func obrimHandlerRegister() { + retriever.ObrimRetrieverJsonRegister( + obrimHandlerResourceIdentifier, + obrimHandlerProvider{}, + ) +} + +// obrimHandlerFetch loads, parses, and returns the complete resource payload. +func obrimHandlerFetch() (any, error) { + resource, err := obrimHandlerLoadResource() + if err != nil { + return nil, err + } + + payload, err := obrimHandlerParseResource(resource) + if err != nil { + return nil, err + } + + return payload, nil +} + +// obrimHandlerLoadResource loads the embedded resource. +func obrimHandlerLoadResource() ([]byte, error) { + resource, err := obrimHandlerEmbeddedResource.ReadFile( + obrimHandlerResourceFileName + obrimHandlerResourceFileExt, + ) + if err != nil { + return nil, errors.New(ObrimHandlerCodeFailedResourceNotFound) + } + + return resource, nil +} + +// obrimHandlerParseResource parses the embedded JSON resource. +func obrimHandlerParseResource(resource []byte) (map[string]any, error) { + var payload map[string]any + + if err := json.Unmarshal(resource, &payload); err != nil { + return nil, errors.New(ObrimHandlerCodeFailedInvalidResource) + } + + return payload, nil +} diff --git a/data/framework/metadata/handler.go b/data/framework/metadata/handler.go index e69de29..a9d3922 100644 --- a/data/framework/metadata/handler.go +++ b/data/framework/metadata/handler.go @@ -0,0 +1,88 @@ +package handler + +import ( + "embed" + "encoding/json" + "errors" + + "go/module/essential/visible/service/helper/retriever" +) + +// constant +const ( + // resource + obrimHandlerResourceIdentifier = "framework/metadata" // change identifier if needed + obrimHandlerResourceFileName = "resource" // change file name if needed + obrimHandlerResourceFileExt = ".json" // do not change + + // success + ObrimHandlerCodeSuccessResourceAvailable = "SUCCESS_RESOURCE_AVAILABLE" + + // fail + ObrimHandlerCodeFailedResourceNotFound = "FAILED_RESOURCE_NOT_FOUND" + ObrimHandlerCodeFailedInvalidResource = "FAILED_INVALID_RESOURCE" +) + +// obrimHandlerEmbeddedResource stores the embedded resource file. +// +//go:embed resource.json +var obrimHandlerEmbeddedResource embed.FS + +// obrimHandlerProvider implements the Retriever JSON provider contract. +type obrimHandlerProvider struct{} + +// Retrieve loads and returns the complete parsed resource payload. +func (provider obrimHandlerProvider) Retrieve() (any, error) { + return obrimHandlerFetch() +} + +// init registers the handler during package initialization. +func init() { + obrimHandlerRegister() +} + +// obrimHandlerRegister registers the handler with Retriever. +func obrimHandlerRegister() { + retriever.ObrimRetrieverJsonRegister( + obrimHandlerResourceIdentifier, + obrimHandlerProvider{}, + ) +} + +// obrimHandlerFetch loads, parses, and returns the complete resource payload. +func obrimHandlerFetch() (any, error) { + resource, err := obrimHandlerLoadResource() + if err != nil { + return nil, err + } + + payload, err := obrimHandlerParseResource(resource) + if err != nil { + return nil, err + } + + return payload, nil +} + +// obrimHandlerLoadResource loads the embedded resource. +func obrimHandlerLoadResource() ([]byte, error) { + resource, err := obrimHandlerEmbeddedResource.ReadFile( + obrimHandlerResourceFileName + obrimHandlerResourceFileExt, + ) + if err != nil { + return nil, errors.New(ObrimHandlerCodeFailedResourceNotFound) + } + + return resource, nil +} + +// obrimHandlerParseResource parses the embedded JSON resource. +func obrimHandlerParseResource(resource []byte) (map[string]any, error) { + var payload map[string]any + + if err := json.Unmarshal(resource, &payload); err != nil { + return nil, errors.New(ObrimHandlerCodeFailedInvalidResource) + } + + return payload, nil +} diff --git a/data/software/glossary/handler.go b/data/software/glossary/handler.go index e69de29..f044d93 100644 --- a/data/software/glossary/handler.go +++ b/data/software/glossary/handler.go @@ -0,0 +1,88 @@ +package handler + +import ( + "embed" + "encoding/json" + "errors" + + "go/module/essential/visible/service/helper/retriever" +) + +// constant +const ( + // resource + obrimHandlerResourceIdentifier = "software/glossary" // change identifier if needed + obrimHandlerResourceFileName = "resource" // change file name if needed + obrimHandlerResourceFileExt = ".json" // do not change + + // success + ObrimHandlerCodeSuccessResourceAvailable = "SUCCESS_RESOURCE_AVAILABLE" + + // fail + ObrimHandlerCodeFailedResourceNotFound = "FAILED_RESOURCE_NOT_FOUND" + ObrimHandlerCodeFailedInvalidResource = "FAILED_INVALID_RESOURCE" +) + +// obrimHandlerEmbeddedResource stores the embedded resource file. +// +//go:embed resource.json +var obrimHandlerEmbeddedResource embed.FS + +// obrimHandlerProvider implements the Retriever JSON provider contract. +type obrimHandlerProvider struct{} + +// Retrieve loads and returns the complete parsed resource payload. +func (provider obrimHandlerProvider) Retrieve() (any, error) { + return obrimHandlerFetch() +} + +// init registers the handler during package initialization. +func init() { + obrimHandlerRegister() +} + +// obrimHandlerRegister registers the handler with Retriever. +func obrimHandlerRegister() { + retriever.ObrimRetrieverJsonRegister( + obrimHandlerResourceIdentifier, + obrimHandlerProvider{}, + ) +} + +// obrimHandlerFetch loads, parses, and returns the complete resource payload. +func obrimHandlerFetch() (any, error) { + resource, err := obrimHandlerLoadResource() + if err != nil { + return nil, err + } + + payload, err := obrimHandlerParseResource(resource) + if err != nil { + return nil, err + } + + return payload, nil +} + +// obrimHandlerLoadResource loads the embedded resource. +func obrimHandlerLoadResource() ([]byte, error) { + resource, err := obrimHandlerEmbeddedResource.ReadFile( + obrimHandlerResourceFileName + obrimHandlerResourceFileExt, + ) + if err != nil { + return nil, errors.New(ObrimHandlerCodeFailedResourceNotFound) + } + + return resource, nil +} + +// obrimHandlerParseResource parses the embedded JSON resource. +func obrimHandlerParseResource(resource []byte) (map[string]any, error) { + var payload map[string]any + + if err := json.Unmarshal(resource, &payload); err != nil { + return nil, errors.New(ObrimHandlerCodeFailedInvalidResource) + } + + return payload, nil +} diff --git a/data/software/metadata/handler.go b/data/software/metadata/handler.go index e69de29..cda2ac4 100644 --- a/data/software/metadata/handler.go +++ b/data/software/metadata/handler.go @@ -0,0 +1,88 @@ +package handler + +import ( + "embed" + "encoding/json" + "errors" + + "go/module/essential/visible/service/helper/retriever" +) + +// constant +const ( + // resource + obrimHandlerResourceIdentifier = "software/metadata" // change identifier if needed + obrimHandlerResourceFileName = "resource" // change file name if needed + obrimHandlerResourceFileExt = ".json" // do not change + + // success + ObrimHandlerCodeSuccessResourceAvailable = "SUCCESS_RESOURCE_AVAILABLE" + + // fail + ObrimHandlerCodeFailedResourceNotFound = "FAILED_RESOURCE_NOT_FOUND" + ObrimHandlerCodeFailedInvalidResource = "FAILED_INVALID_RESOURCE" +) + +// obrimHandlerEmbeddedResource stores the embedded resource file. +// +//go:embed resource.json +var obrimHandlerEmbeddedResource embed.FS + +// obrimHandlerProvider implements the Retriever JSON provider contract. +type obrimHandlerProvider struct{} + +// Retrieve loads and returns the complete parsed resource payload. +func (provider obrimHandlerProvider) Retrieve() (any, error) { + return obrimHandlerFetch() +} + +// init registers the handler during package initialization. +func init() { + obrimHandlerRegister() +} + +// obrimHandlerRegister registers the handler with Retriever. +func obrimHandlerRegister() { + retriever.ObrimRetrieverJsonRegister( + obrimHandlerResourceIdentifier, + obrimHandlerProvider{}, + ) +} + +// obrimHandlerFetch loads, parses, and returns the complete resource payload. +func obrimHandlerFetch() (any, error) { + resource, err := obrimHandlerLoadResource() + if err != nil { + return nil, err + } + + payload, err := obrimHandlerParseResource(resource) + if err != nil { + return nil, err + } + + return payload, nil +} + +// obrimHandlerLoadResource loads the embedded resource. +func obrimHandlerLoadResource() ([]byte, error) { + resource, err := obrimHandlerEmbeddedResource.ReadFile( + obrimHandlerResourceFileName + obrimHandlerResourceFileExt, + ) + if err != nil { + return nil, errors.New(ObrimHandlerCodeFailedResourceNotFound) + } + + return resource, nil +} + +// obrimHandlerParseResource parses the embedded JSON resource. +func obrimHandlerParseResource(resource []byte) (map[string]any, error) { + var payload map[string]any + + if err := json.Unmarshal(resource, &payload); err != nil { + return nil, errors.New(ObrimHandlerCodeFailedInvalidResource) + } + + return payload, nil +}