aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/graphql-go/handler/graphiql.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/graphql-go/handler/graphiql.go')
-rw-r--r--vendor/github.com/graphql-go/handler/graphiql.go199
1 files changed, 0 insertions, 199 deletions
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 }}
-`