74 lines
1.1 KiB
Go
74 lines
1.1 KiB
Go
package graph
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
|
|
"github.com/dgraph-io/dgo/v2"
|
|
"github.com/dgraph-io/dgo/v2/protos/api"
|
|
"google.golang.org/grpc"
|
|
)
|
|
|
|
func ConnectToDgraph() (*dgo.Dgraph, error) {
|
|
client, err := grpc.Dial("localhost:9080", grpc.WithInsecure())
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
return dgo.NewDgraphClient(
|
|
api.NewDgraphClient(client),
|
|
), err
|
|
}
|
|
|
|
func InitSchema(c *dgo.Dgraph) error {
|
|
err := c.Alter(context.Background(), &api.Operation{
|
|
Schema: `
|
|
firstName: string .
|
|
lastName: string @index(term) .
|
|
nationality: string @index(term) .
|
|
dob: string .
|
|
type: string @index(term) .
|
|
|
|
type Driver {
|
|
firstName: string
|
|
lastName: string
|
|
nationality: string
|
|
dob: string
|
|
type: string
|
|
}
|
|
|
|
season: string @index(term) .
|
|
round: string .
|
|
raceName: string @index(term) .
|
|
circuit: uid .
|
|
date: string .
|
|
url: string .
|
|
|
|
type Circuit {
|
|
name: string
|
|
location: string
|
|
url: string
|
|
type: string
|
|
}
|
|
|
|
type Race {
|
|
season: string
|
|
round: string
|
|
raceName: string
|
|
circuit: Circuit
|
|
date: string
|
|
url: string
|
|
type: string
|
|
}
|
|
|
|
name: string @index(term) .
|
|
location: string @index(term) .
|
|
`})
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|