Add getRequests query to GraphQL server

This commit is contained in:
David Stotijn
2020-02-23 22:07:46 +01:00
parent ef96a69baa
commit 400436607c
10 changed files with 523 additions and 865 deletions

34
pkg/api/resolvers.go Normal file
View File

@ -0,0 +1,34 @@
package api
import (
"context"
"fmt"
"github.com/dstotijn/gurp/pkg/reqlog"
)
type Resolver struct {
RequestLogStore *reqlog.RequestLogStore
}
type queryResolver struct{ *Resolver }
func (r *Resolver) Query() QueryResolver { return &queryResolver{r} }
func (r *queryResolver) GetRequests(ctx context.Context) ([]Request, error) {
reqs := r.RequestLogStore.Requests()
resp := make([]Request, len(reqs))
for i := range resp {
method := HTTPMethod(reqs[i].Request.Method)
if !method.IsValid() {
return nil, fmt.Errorf("request has invalid method: %v", method)
}
resp[i] = Request{
URL: reqs[i].Request.URL.String(),
Method: method,
}
}
return resp, nil
}