api

package
v0.0.0-...-c97ac92 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 26, 2023 License: AGPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var MutationObject = graphql.NewObject(graphql.ObjectConfig{
	Name: "Mutation",
	Fields: graphql.Fields{
		"addAsset": {
			Description: "Add a Asset.",
			Type:        graphql.NewNonNull(object.Asset),
			Args: graphql.FieldConfigArgument{
				"input": {
					Type: graphql.NewNonNull(object.AddAssetInput),
				},
			},
			Resolve: func(p graphql.ResolveParams) (interface{}, error) {
				input := db.AddAssetInput{}
				Cast(p.Args["input"], &input)

				input.ID = uuid.NewString()

				return mutation.AddAsset(apidb.Mem, input)
			},
		},
		"updateAsset": {
			Description: "Update a Asset.",
			Type:        graphql.NewNonNull(object.Asset),
			Args: graphql.FieldConfigArgument{
				"input": {
					Type: graphql.NewNonNull(object.UpdateAssetInput),
				},
			},
			Resolve: func(p graphql.ResolveParams) (interface{}, error) {
				input := db.UpdateAssetInput{}
				Cast(p.Args["input"], &input)
				return mutation.UpdateAsset(apidb.Mem, input)
			},
		},
		"deleteAsset": {
			Description: "Delete a Asset.",
			Type:        graphql.NewNonNull(object.Asset),
			Args: graphql.FieldConfigArgument{
				"input": {
					Type: graphql.NewNonNull(object.DeleteAssetInput),
				},
			},
			Resolve: func(p graphql.ResolveParams) (interface{}, error) {
				input := db.DeleteAssetInput{}
				Cast(p.Args["input"], &input)
				return mutation.DeleteAsset(apidb.Mem, input)
			},
		},
		"addCVE": {
			Description: "Add a CVE.",
			Type:        graphql.NewNonNull(object.CVE),
			Args: graphql.FieldConfigArgument{
				"input": {
					Type: graphql.NewNonNull(object.AddCVEInput),
				},
			},
			Resolve: func(p graphql.ResolveParams) (interface{}, error) {
				input := db.AddCVEInput{}
				Cast(p.Args["input"], &input)
				return mutation.AddCVE(apidb.Mem, input)
			},
		},
		"updateCVE": {
			Description: "Update a CVE.",
			Type:        graphql.NewNonNull(object.CVE),
			Args: graphql.FieldConfigArgument{
				"input": {
					Type: graphql.NewNonNull(object.UpdateCVEInput),
				},
			},
			Resolve: func(p graphql.ResolveParams) (interface{}, error) {
				input := db.UpdateCVEInput{}
				Cast(p.Args["input"], &input)
				return mutation.UpdateCVE(apidb.Mem, input)
			},
		},
		"deleteCVE": {
			Description: "Delete a CVE.",
			Type:        graphql.NewNonNull(object.CVE),
			Args: graphql.FieldConfigArgument{
				"input": {
					Type: graphql.NewNonNull(object.DeleteCVEInput),
				},
			},
			Resolve: func(p graphql.ResolveParams) (interface{}, error) {
				input := db.DeleteCVEInput{}
				Cast(p.Args["input"], &input)
				return mutation.DeleteCVE(apidb.Mem, input)
			},
		},
	},
})
View Source
var QueryObject = graphql.NewObject(graphql.ObjectConfig{
	Name: "Query",
	Fields: graphql.Fields{
		"getAsset": {
			Description: "Get a specific Asset.",
			Type:        object.Asset,
			Args: graphql.FieldConfigArgument{
				"input": {
					Type: graphql.NewNonNull(object.GetAssetInput),
				},
			},
			Resolve: func(p graphql.ResolveParams) (interface{}, error) {
				input := db.GetAssetInput{}
				Cast(p.Args["input"], &input)
				return query.GetAsset(apidb.Mem, input)
			},
		},
		"queryAssets": {
			Description: "Query a list of Asset.",
			Type: graphql.NewNonNull(&graphql.List{
				OfType: graphql.NewNonNull(object.Asset),
			}),
			Args: graphql.FieldConfigArgument{
				"input": {
					Type: graphql.NewNonNull(object.QueryAssetsInput),
				},
			},
			Resolve: func(p graphql.ResolveParams) (interface{}, error) {
				input := db.QueryAssetInput{}
				Cast(p.Args["input"], &input)
				return query.QueryAssets(apidb.Mem, input)
			},
		},
		"getCVE": {
			Description: "Get a specific CVE.",
			Type:        object.CVE,
			Args: graphql.FieldConfigArgument{
				"input": {
					Type: graphql.NewNonNull(object.GetCVEInput),
				},
			},
			Resolve: func(p graphql.ResolveParams) (interface{}, error) {
				input := db.GetCVEInput{}
				Cast(p.Args["input"], &input)
				return query.GetCVE(apidb.Mem, input)
			},
		},
		"queryCVEs": {
			Description: "Query a list of CVE.",
			Type: graphql.NewNonNull(&graphql.List{
				OfType: graphql.NewNonNull(object.CVE),
			}),
			Args: graphql.FieldConfigArgument{
				"input": {
					Type: graphql.NewNonNull(object.QueryCVEsInput),
				},
			},
			Resolve: func(p graphql.ResolveParams) (interface{}, error) {
				input := db.QueryCVEInput{}
				Cast(p.Args["input"], &input)
				return query.QueryCVEs(apidb.Mem, input)
			},
		},
	},
})
View Source
var Schema = must(graphql.NewSchema(graphql.SchemaConfig{
	Query:    QueryObject,
	Mutation: MutationObject,
}))

Functions

func Cast

func Cast(src any, dst any)

Cast translates src into dst using standard JSON marshal/unmarshal operations.

func HandleGraphQLReq

func HandleGraphQLReq(w http.ResponseWriter, req *http.Request)

Types

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL