80 lines
2.1 KiB
Go
80 lines
2.1 KiB
Go
package dgraph
|
|
|
|
import (
|
|
"context"
|
|
"e621_to_neo4j/database"
|
|
"e621_to_neo4j/e621/models"
|
|
"github.com/dgraph-io/dgo/v210"
|
|
"github.com/dgraph-io/dgo/v210/protos/api"
|
|
"google.golang.org/grpc"
|
|
"google.golang.org/grpc/credentials/insecure"
|
|
"google.golang.org/grpc/encoding/gzip"
|
|
"log"
|
|
)
|
|
|
|
type dgraphConnection struct {
|
|
driver dgo.Dgraph
|
|
}
|
|
|
|
func (d *dgraphConnection) UploadUser(ctx context.Context, user models.E621User) error {
|
|
//TODO implement me
|
|
panic("implement me")
|
|
}
|
|
|
|
func (d *dgraphConnection) UploadSource(ctx context.Context, SourceURL string) error {
|
|
//TODO implement me
|
|
panic("implement me")
|
|
}
|
|
|
|
func (d *dgraphConnection) UploadPost(ctx context.Context, e621ID int64) error {
|
|
//TODO implement me
|
|
panic("implement me")
|
|
}
|
|
|
|
func (d *dgraphConnection) UploadTag(ctx context.Context, name string, tagType string) error {
|
|
//TODO implement me
|
|
panic("implement me")
|
|
}
|
|
|
|
func (d *dgraphConnection) EstablishPostTagLink(ctx context.Context, e621PostID int64, e621Tag string) error {
|
|
//TODO implement me
|
|
panic("implement me")
|
|
}
|
|
|
|
func (d *dgraphConnection) EstablishPostToSourceLink(ctx context.Context, e621PostID int64, sourceURL string) error {
|
|
//TODO implement me
|
|
panic("implement me")
|
|
}
|
|
|
|
func (d *dgraphConnection) EstablishUserToPostLink(ctx context.Context, e621PostID int64, e621UserID int64) error {
|
|
//TODO implement me
|
|
panic("implement me")
|
|
}
|
|
|
|
func (d *dgraphConnection) Connect(ctx context.Context, endpoint string, username string, password string) error {
|
|
// Dial a gRPC connection. The address to dial to can be configured when
|
|
// setting up the dgraph cluster.
|
|
dialOpts := append([]grpc.DialOption{},
|
|
grpc.WithTransportCredentials(insecure.NewCredentials()),
|
|
grpc.WithDefaultCallOptions(grpc.UseCompressor(gzip.Name)))
|
|
conn, err := grpc.Dial(endpoint, dialOpts...)
|
|
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
defer func(conn *grpc.ClientConn) {
|
|
err := conn.Close()
|
|
if err != nil {
|
|
return
|
|
}
|
|
}(conn)
|
|
|
|
d.driver = *dgo.NewDgraphClient(api.NewDgraphClient(conn))
|
|
return nil
|
|
}
|
|
|
|
func NewDGraphConnection() database.GraphConnection {
|
|
return &dgraphConnection{}
|
|
}
|