A very naive, simple and not so robust HTTP API responder implementation.
This commit is contained in:
13
internal/application/api_responder.go
Normal file
13
internal/application/api_responder.go
Normal file
@@ -0,0 +1,13 @@
|
||||
package application
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"go.dev.pztrn.name/metricator/internal/common"
|
||||
)
|
||||
|
||||
func (a *Application) respond(ctx context.Context) string {
|
||||
metricName := ctx.Value(common.ContextKeyMetric).(string)
|
||||
|
||||
return a.storage.Get(metricName)
|
||||
}
|
@@ -6,6 +6,7 @@ import (
|
||||
"net/http"
|
||||
"sync"
|
||||
|
||||
"go.dev.pztrn.name/metricator/internal/common"
|
||||
"go.dev.pztrn.name/metricator/internal/storage"
|
||||
"go.dev.pztrn.name/metricator/internal/storage/memory"
|
||||
)
|
||||
@@ -46,6 +47,11 @@ func (a *Application) GetDoneChan() chan struct{} {
|
||||
return a.doneChan
|
||||
}
|
||||
|
||||
// GetHandler returns HTTP requests handling function.
|
||||
func (a *Application) GetHandler() common.HTTPHandlerFunc {
|
||||
return a.respond
|
||||
}
|
||||
|
||||
// Initializes internal things like storage, HTTP client, etc.
|
||||
func (a *Application) initialize() {
|
||||
a.storage, a.storageDone = memory.NewStorage(a.ctx, a.name+" storage")
|
||||
|
Reference in New Issue
Block a user