support json schema
This commit is contained in:
61
app.go
Normal file
61
app.go
Normal file
@ -0,0 +1,61 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"gitea.libretechconsulting.com/rmcguire/go-app/pkg/app"
|
||||
grpcopts "gitea.libretechconsulting.com/rmcguire/go-app/pkg/srv/grpc/opts"
|
||||
httpopts "gitea.libretechconsulting.com/rmcguire/go-app/pkg/srv/http/opts"
|
||||
|
||||
weatherpb "gitea.libretechconsulting.com/rmcguire/ambient-local-exporter/api/v1alpha1/weather"
|
||||
"gitea.libretechconsulting.com/rmcguire/ambient-local-exporter/pkg/ambient"
|
||||
"gitea.libretechconsulting.com/rmcguire/ambient-local-exporter/pkg/ambient/ambienthttp"
|
||||
weathergrpc "gitea.libretechconsulting.com/rmcguire/ambient-local-exporter/pkg/weather/grpc"
|
||||
)
|
||||
|
||||
func prepareApp(ctx context.Context, aw *ambient.AmbientWeather) *app.App {
|
||||
// Load ambient routes into app
|
||||
awApp := &app.App{
|
||||
AppContext: ctx,
|
||||
|
||||
// HTTP Endpoints for Ambient Weather Stations
|
||||
HTTP: &httpopts.AppHTTP{
|
||||
Funcs: []httpopts.HTTPFunc{
|
||||
{
|
||||
Path: "/weatherstation/updateweatherstation.php",
|
||||
HandlerFunc: aw.GetWundergroundHandlerFunc(ctx),
|
||||
},
|
||||
{
|
||||
Path: "/data/report",
|
||||
HandlerFunc: aw.GetAWNHandlerFunc(ctx),
|
||||
},
|
||||
},
|
||||
|
||||
// HTTP Listener that fixes broken requests generated by
|
||||
// some versions of awn firmware
|
||||
CustomListener: ambienthttp.NewAWNMutatingListener(ctx,
|
||||
aw.Config.HTTP.Listen), // Necessary to fix certain bad AWN firmware
|
||||
|
||||
// Health check funcs
|
||||
HealthChecks: []httpopts.HealthCheckFunc{
|
||||
// TODO: Implement
|
||||
func(ctx context.Context) error {
|
||||
return nil
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// GRPC Service for retrieving weather
|
||||
GRPC: &grpcopts.AppGRPC{
|
||||
Services: []*grpcopts.GRPCService{
|
||||
{
|
||||
Name: "Weather Service",
|
||||
Type: &weatherpb.AmbientLocalWeatherService_ServiceDesc,
|
||||
Service: weathergrpc.NewGRPCWeather(ctx, aw.GetRecorder()),
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return awApp
|
||||
}
|
Reference in New Issue
Block a user