| package router |
|
|
| import ( |
| "net/http" |
|
|
| "github.com/openmeterio/openmeter/api" |
| httpdriver "github.com/openmeterio/openmeter/openmeter/meter/httphandler" |
| "github.com/openmeterio/openmeter/pkg/framework/commonhttp" |
| ) |
|
|
| |
| func (a *Router) ListMeters(w http.ResponseWriter, r *http.Request, params api.ListMetersParams) { |
| a.meterHandler.ListMeters().With(params).ServeHTTP(w, r) |
| } |
|
|
| |
| func (a *Router) GetMeter(w http.ResponseWriter, r *http.Request, meterIdOrSlug string) { |
| a.meterHandler.GetMeter().With(meterIdOrSlug).ServeHTTP(w, r) |
| } |
|
|
| |
| func (a *Router) CreateMeter(w http.ResponseWriter, r *http.Request) { |
| a.meterHandler.CreateMeter().ServeHTTP(w, r) |
| } |
|
|
| |
| func (a *Router) UpdateMeter(w http.ResponseWriter, r *http.Request, meterID string) { |
| a.meterHandler.UpdateMeter().With(meterID).ServeHTTP(w, r) |
| } |
|
|
| |
| func (a *Router) DeleteMeter(w http.ResponseWriter, r *http.Request, meterIdOrSlug string) { |
| a.meterHandler.DeleteMeter().With(meterIdOrSlug).ServeHTTP(w, r) |
| } |
|
|
| |
| func (a *Router) QueryMeter(w http.ResponseWriter, r *http.Request, meterIDOrSlug string, params api.QueryMeterParams) { |
| |
| handlerParams := httpdriver.QueryMeterParams{ |
| IdOrSlug: meterIDOrSlug, |
| QueryMeterParams: params, |
| } |
|
|
| |
| mediatype, err := commonhttp.GetMediaType(r) |
| if err != nil { |
| a.config.Logger.DebugContext(r.Context(), "invalid media type", "error", err) |
| } |
|
|
| |
| if mediatype == "text/csv" { |
| a.meterHandler.QueryMeterCSV().With(handlerParams).ServeHTTP(w, r) |
| return |
| } |
|
|
| |
| a.meterHandler.QueryMeter().With(handlerParams).ServeHTTP(w, r) |
| } |
|
|
| |
| func (a *Router) QueryMeterPost(w http.ResponseWriter, r *http.Request, meterIDOrSlug string) { |
| |
| mediatype, err := commonhttp.GetMediaType(r) |
| if err != nil { |
| a.config.Logger.DebugContext(r.Context(), "invalid media type", "error", err) |
| } |
|
|
| |
| if mediatype == "text/csv" { |
| a.meterHandler.QueryMeterPostCSV().With(meterIDOrSlug).ServeHTTP(w, r) |
| return |
| } |
|
|
| |
| a.meterHandler.QueryMeterPost().With(meterIDOrSlug).ServeHTTP(w, r) |
| } |
|
|
| |
| func (a *Router) ListMeterSubjects(w http.ResponseWriter, r *http.Request, meterIDOrSlug string, params api.ListMeterSubjectsParams) { |
| a.meterHandler.ListSubjects().With(httpdriver.ListSubjectsParams{ |
| IdOrSlug: meterIDOrSlug, |
| From: params.From, |
| To: params.To, |
| }).ServeHTTP(w, r) |
| } |
|
|
| |
| func (a *Router) ListMeterGroupByValues(w http.ResponseWriter, r *http.Request, meterIDOrSlug string, groupByKey string, params api.ListMeterGroupByValuesParams) { |
| a.meterHandler.ListGroupByValues().With(httpdriver.ListGroupByValuesParams{ |
| IdOrSlug: meterIDOrSlug, |
| GroupByKey: groupByKey, |
| From: params.From, |
| To: params.To, |
| }).ServeHTTP(w, r) |
| } |
|
|