aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/graphql-go/handler
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/graphql-go/handler')
-rw-r--r--vendor/github.com/graphql-go/handler/.gitignore25
-rw-r--r--vendor/github.com/graphql-go/handler/.travis.yml12
-rw-r--r--vendor/github.com/graphql-go/handler/LICENSE22
-rw-r--r--vendor/github.com/graphql-go/handler/README.md79
-rw-r--r--vendor/github.com/graphql-go/handler/graphiql.go199
-rw-r--r--vendor/github.com/graphql-go/handler/handler.go189
6 files changed, 0 insertions, 526 deletions
diff --git a/vendor/github.com/graphql-go/handler/.gitignore b/vendor/github.com/graphql-go/handler/.gitignore
deleted file mode 100644
index 3a709f36..00000000
--- a/vendor/github.com/graphql-go/handler/.gitignore
+++ /dev/null
@@ -1,25 +0,0 @@
-# Compiled Object files, Static and Dynamic libs (Shared Objects)
-*.o
-*.a
-*.so
-
-# Folders
-_obj
-_test
-
-# Architecture specific extensions/prefixes
-*.[568vq]
-[568vq].out
-
-*.cgo1.go
-*.cgo2.c
-_cgo_defun.c
-_cgo_gotypes.go
-_cgo_export.*
-
-_testmain.go
-
-*.exe
-*.test
-*.prof
-*.swp
diff --git a/vendor/github.com/graphql-go/handler/.travis.yml b/vendor/github.com/graphql-go/handler/.travis.yml
deleted file mode 100644
index 3fee687b..00000000
--- a/vendor/github.com/graphql-go/handler/.travis.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-language: go
-
-go:
- - 1.x
- - tip
-
-before_install:
- - go get github.com/axw/gocov/gocov
- - go get github.com/mattn/goveralls
-
-script:
- - $HOME/gopath/bin/goveralls -service=travis-ci
diff --git a/vendor/github.com/graphql-go/handler/LICENSE b/vendor/github.com/graphql-go/handler/LICENSE
deleted file mode 100644
index 4bcca848..00000000
--- a/vendor/github.com/graphql-go/handler/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Hafiz Ismail
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
diff --git a/vendor/github.com/graphql-go/handler/README.md b/vendor/github.com/graphql-go/handler/README.md
deleted file mode 100644
index a6986c5e..00000000
--- a/vendor/github.com/graphql-go/handler/README.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# graphql-go-handler [![Build Status](https://travis-ci.org/graphql-go/handler.svg)](https://travis-ci.org/graphql-go/handler) [![GoDoc](https://godoc.org/graphql-go/handler?status.svg)](https://godoc.org/github.com/graphql-go/handler) [![Coverage Status](https://coveralls.io/repos/graphql-go/handler/badge.svg?branch=master&service=github)](https://coveralls.io/github/graphql-go/handler?branch=master) [![Join the chat at https://gitter.im/graphql-go/graphql](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/graphql-go/graphql?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-
-Golang HTTP.Handler for [graphl-go](https://github.com/graphql-go/graphql)
-
-### Notes:
-This is based on alpha version of `graphql-go` and `graphql-relay-go`.
-Be sure to watch both repositories for latest changes.
-
-### Usage
-
-```go
-package main
-
-import (
- "net/http"
- "github.com/graphql-go/handler"
-)
-
-func main() {
-
- // define GraphQL schema using relay library helpers
- schema := graphql.NewSchema(...)
-
- h := handler.New(&handler.Config{
- Schema: &schema,
- Pretty: true,
- GraphiQL: true,
- })
-
- // serve HTTP
- http.Handle("/graphql", h)
- http.ListenAndServe(":8080", nil)
-}
-```
-
-### Details
-
-The handler will accept requests with
-the parameters:
-
- * **`query`**: A string GraphQL document to be executed.
-
- * **`variables`**: The runtime values to use for any GraphQL query variables
- as a JSON object.
-
- * **`operationName`**: If the provided `query` contains multiple named
- operations, this specifies which operation should be executed. If not
- provided, an 400 error will be returned if the `query` contains multiple
- named operations.
-
-GraphQL will first look for each parameter in the URL's query-string:
-
-```
-/graphql?query=query+getUser($id:ID){user(id:$id){name}}&variables={"id":"4"}
-```
-
-If not found in the query-string, it will look in the POST request body.
-The `handler` will interpret it
-depending on the provided `Content-Type` header.
-
- * **`application/json`**: the POST body will be parsed as a JSON
- object of parameters.
-
- * **`application/x-www-form-urlencoded`**: this POST body will be
- parsed as a url-encoded string of key-value pairs.
-
- * **`application/graphql`**: The POST body will be parsed as GraphQL
- query string, which provides the `query` parameter.
-
-
-### Examples
-- [golang-graphql-playground](https://github.com/graphql-go/playground)
-- [golang-relay-starter-kit](https://github.com/sogko/golang-relay-starter-kit)
-- [todomvc-relay-go](https://github.com/sogko/todomvc-relay-go)
-
-### Test
-```bash
-$ go get github.com/graphql-go/handler
-$ go build && go test ./...
diff --git a/vendor/github.com/graphql-go/handler/graphiql.go b/vendor/github.com/graphql-go/handler/graphiql.go
deleted file mode 100644
index ace949b4..00000000
--- a/vendor/github.com/graphql-go/handler/graphiql.go
+++ /dev/null
@@ -1,199 +0,0 @@
-package handler
-
-import (
- "encoding/json"
- "html/template"
- "net/http"
-
- "github.com/graphql-go/graphql"
-)
-
-// page is the page data structure of the rendered GraphiQL page
-type graphiqlPage struct {
- GraphiqlVersion string
- QueryString string
- ResultString string
- VariablesString string
- OperationName string
-}
-
-// renderGraphiQL renders the GraphiQL GUI
-func renderGraphiQL(w http.ResponseWriter, params graphql.Params) {
- t := template.New("GraphiQL")
- t, err := t.Parse(graphiqlTemplate)
- if err != nil {
- http.Error(w, err.Error(), http.StatusInternalServerError)
- return
- }
-
- // Create variables string
- vars, err := json.MarshalIndent(params.VariableValues, "", " ")
- if err != nil {
- http.Error(w, err.Error(), http.StatusInternalServerError)
- return
- }
- varsString := string(vars)
- if varsString == "null" {
- varsString = ""
- }
-
- // Create result string
- var resString string
- if params.RequestString == "" {
- resString = ""
- } else {
- result, err := json.MarshalIndent(graphql.Do(params), "", " ")
- if err != nil {
- http.Error(w, err.Error(), http.StatusInternalServerError)
- return
- }
- resString = string(result)
- }
-
- p := graphiqlPage{
- GraphiqlVersion: graphiqlVersion,
- QueryString: params.RequestString,
- ResultString: resString,
- VariablesString: varsString,
- OperationName: params.OperationName,
- }
-
- err = t.ExecuteTemplate(w, "index", p)
- if err != nil {
- http.Error(w, err.Error(), http.StatusInternalServerError)
- }
- return
-}
-
-// graphiqlVersion is the current version of GraphiQL
-const graphiqlVersion = "0.11.3"
-
-// tmpl is the page template to render GraphiQL
-const graphiqlTemplate = `
-{{ define "index" }}
-<!--
-The request to this GraphQL server provided the header "Accept: text/html"
-and as a result has been presented GraphiQL - an in-browser IDE for
-exploring GraphQL.
-
-If you wish to receive JSON, provide the header "Accept: application/json" or
-add "&raw" to the end of the URL within a browser.
--->
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="utf-8" />
- <title>GraphiQL</title>
- <meta name="robots" content="noindex" />
- <style>
- html, body {
- height: 100%;
- margin: 0;
- overflow: hidden;
- width: 100%;
- }
- </style>
- <link href="//cdn.jsdelivr.net/npm/graphiql@{{ .GraphiqlVersion }}/graphiql.css" rel="stylesheet" />
- <script src="//cdn.jsdelivr.net/fetch/0.9.0/fetch.min.js"></script>
- <script src="//cdn.jsdelivr.net/react/15.4.2/react.min.js"></script>
- <script src="//cdn.jsdelivr.net/react/15.4.2/react-dom.min.js"></script>
- <script src="//cdn.jsdelivr.net/npm/graphiql@{{ .GraphiqlVersion }}/graphiql.min.js"></script>
-</head>
-<body>
- <script>
- // Collect the URL parameters
- var parameters = {};
- window.location.search.substr(1).split('&').forEach(function (entry) {
- var eq = entry.indexOf('=');
- if (eq >= 0) {
- parameters[decodeURIComponent(entry.slice(0, eq))] =
- decodeURIComponent(entry.slice(eq + 1));
- }
- });
-
- // Produce a Location query string from a parameter object.
- function locationQuery(params) {
- return '?' + Object.keys(params).filter(function (key) {
- return Boolean(params[key]);
- }).map(function (key) {
- return encodeURIComponent(key) + '=' +
- encodeURIComponent(params[key]);
- }).join('&');
- }
-
- // Derive a fetch URL from the current URL, sans the GraphQL parameters.
- var graphqlParamNames = {
- query: true,
- variables: true,
- operationName: true
- };
-
- var otherParams = {};
- for (var k in parameters) {
- if (parameters.hasOwnProperty(k) && graphqlParamNames[k] !== true) {
- otherParams[k] = parameters[k];
- }
- }
- var fetchURL = locationQuery(otherParams);
-
- // Defines a GraphQL fetcher using the fetch API.
- function graphQLFetcher(graphQLParams) {
- return fetch(fetchURL, {
- method: 'post',
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- body: JSON.stringify(graphQLParams),
- credentials: 'include',
- }).then(function (response) {
- return response.text();
- }).then(function (responseBody) {
- try {
- return JSON.parse(responseBody);
- } catch (error) {
- return responseBody;
- }
- });
- }
-
- // When the query and variables string is edited, update the URL bar so
- // that it can be easily shared.
- function onEditQuery(newQuery) {
- parameters.query = newQuery;
- updateURL();
- }
-
- function onEditVariables(newVariables) {
- parameters.variables = newVariables;
- updateURL();
- }
-
- function onEditOperationName(newOperationName) {
- parameters.operationName = newOperationName;
- updateURL();
- }
-
- function updateURL() {
- history.replaceState(null, null, locationQuery(parameters));
- }
-
- // Render <GraphiQL /> into the body.
- ReactDOM.render(
- React.createElement(GraphiQL, {
- fetcher: graphQLFetcher,
- onEditQuery: onEditQuery,
- onEditVariables: onEditVariables,
- onEditOperationName: onEditOperationName,
- query: {{ .QueryString }},
- response: {{ .ResultString }},
- variables: {{ .VariablesString }},
- operationName: {{ .OperationName }},
- }),
- document.body
- );
- </script>
-</body>
-</html>
-{{ end }}
-`
diff --git a/vendor/github.com/graphql-go/handler/handler.go b/vendor/github.com/graphql-go/handler/handler.go
deleted file mode 100644
index cfcb1ca9..00000000
--- a/vendor/github.com/graphql-go/handler/handler.go
+++ /dev/null
@@ -1,189 +0,0 @@
-package handler
-
-import (
- "encoding/json"
- "io/ioutil"
- "net/http"
- "net/url"
- "strings"
-
- "github.com/graphql-go/graphql"
-
- "context"
-)
-
-const (
- ContentTypeJSON = "application/json"
- ContentTypeGraphQL = "application/graphql"
- ContentTypeFormURLEncoded = "application/x-www-form-urlencoded"
-)
-
-type Handler struct {
- Schema *graphql.Schema
- pretty bool
- graphiql bool
-}
-type RequestOptions struct {
- Query string `json:"query" url:"query" schema:"query"`
- Variables map[string]interface{} `json:"variables" url:"variables" schema:"variables"`
- OperationName string `json:"operationName" url:"operationName" schema:"operationName"`
-}
-
-// a workaround for getting`variables` as a JSON string
-type requestOptionsCompatibility struct {
- Query string `json:"query" url:"query" schema:"query"`
- Variables string `json:"variables" url:"variables" schema:"variables"`
- OperationName string `json:"operationName" url:"operationName" schema:"operationName"`
-}
-
-func getFromForm(values url.Values) *RequestOptions {
- query := values.Get("query")
- if query != "" {
- // get variables map
- variables := make(map[string]interface{}, len(values))
- variablesStr := values.Get("variables")
- json.Unmarshal([]byte(variablesStr), &variables)
-
- return &RequestOptions{
- Query: query,
- Variables: variables,
- OperationName: values.Get("operationName"),
- }
- }
-
- return nil
-}
-
-// RequestOptions Parses a http.Request into GraphQL request options struct
-func NewRequestOptions(r *http.Request) *RequestOptions {
- if reqOpt := getFromForm(r.URL.Query()); reqOpt != nil {
- return reqOpt
- }
-
- if r.Method != "POST" {
- return &RequestOptions{}
- }
-
- if r.Body == nil {
- return &RequestOptions{}
- }
-
- // TODO: improve Content-Type handling
- contentTypeStr := r.Header.Get("Content-Type")
- contentTypeTokens := strings.Split(contentTypeStr, ";")
- contentType := contentTypeTokens[0]
-
- switch contentType {
- case ContentTypeGraphQL:
- body, err := ioutil.ReadAll(r.Body)
- if err != nil {
- return &RequestOptions{}
- }
- return &RequestOptions{
- Query: string(body),
- }
- case ContentTypeFormURLEncoded:
- if err := r.ParseForm(); err != nil {
- return &RequestOptions{}
- }
-
- if reqOpt := getFromForm(r.PostForm); reqOpt != nil {
- return reqOpt
- }
-
- return &RequestOptions{}
-
- case ContentTypeJSON:
- fallthrough
- default:
- var opts RequestOptions
- body, err := ioutil.ReadAll(r.Body)
- if err != nil {
- return &opts
- }
- err = json.Unmarshal(body, &opts)
- if err != nil {
- // Probably `variables` was sent as a string instead of an object.
- // So, we try to be polite and try to parse that as a JSON string
- var optsCompatible requestOptionsCompatibility
- json.Unmarshal(body, &optsCompatible)
- json.Unmarshal([]byte(optsCompatible.Variables), &opts.Variables)
- }
- return &opts
- }
-}
-
-// ContextHandler provides an entrypoint into executing graphQL queries with a
-// user-provided context.
-func (h *Handler) ContextHandler(ctx context.Context, w http.ResponseWriter, r *http.Request) {
- // get query
- opts := NewRequestOptions(r)
-
- // execute graphql query
- params := graphql.Params{
- Schema: *h.Schema,
- RequestString: opts.Query,
- VariableValues: opts.Variables,
- OperationName: opts.OperationName,
- Context: ctx,
- }
- result := graphql.Do(params)
-
- if h.graphiql {
- acceptHeader := r.Header.Get("Accept")
- _, raw := r.URL.Query()["raw"]
- if !raw && !strings.Contains(acceptHeader, "application/json") && strings.Contains(acceptHeader, "text/html") {
- renderGraphiQL(w, params)
- return
- }
- }
-
- // use proper JSON Header
- w.Header().Add("Content-Type", "application/json; charset=utf-8")
-
- if h.pretty {
- w.WriteHeader(http.StatusOK)
- buff, _ := json.MarshalIndent(result, "", "\t")
-
- w.Write(buff)
- } else {
- w.WriteHeader(http.StatusOK)
- buff, _ := json.Marshal(result)
-
- w.Write(buff)
- }
-}
-
-// ServeHTTP provides an entrypoint into executing graphQL queries.
-func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
- h.ContextHandler(r.Context(), w, r)
-}
-
-type Config struct {
- Schema *graphql.Schema
- Pretty bool
- GraphiQL bool
-}
-
-func NewConfig() *Config {
- return &Config{
- Schema: nil,
- Pretty: true,
- GraphiQL: true,
- }
-}
-
-func New(p *Config) *Handler {
- if p == nil {
- p = NewConfig()
- }
- if p.Schema == nil {
- panic("undefined GraphQL schema")
- }
-
- return &Handler{
- Schema: p.Schema,
- pretty: p.Pretty,
- graphiql: p.GraphiQL,
- }
-}