A very naive, simple and not so robust HTTP API responder implementation.

This commit is contained in:
2020-11-29 06:09:35 +05:00
parent f5d898b025
commit afad4f5d7f
5 changed files with 67 additions and 5 deletions

View 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)
}

View File

@@ -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")