V2 #2

Merged
fenpaws merged 13 commits from V2 into main 2024-07-08 13:42:14 +00:00
Showing only changes of commit 6be508532e - Show all commits

View File

@ -3,43 +3,62 @@ package plug
import ( import (
"context" "context"
"fmt" "fmt"
"log"
"net"
"git.dragse.it/anthrove/otter-space-sdk/v2/pkg/database" "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/database"
"git.dragse.it/anthrove/otter-space-sdk/v2/pkg/models" "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/models"
"net"
pb "git.dragse.it/anthrove/plug-sdk/pkg/grpc" pb "git.dragse.it/anthrove/plug-sdk/pkg/grpc"
"google.golang.org/grpc" "google.golang.org/grpc"
) )
type TaskExecution func(ctx context.Context, graph database.OtterSpace, sourceUsername string, anthroveUser models.User, deepScrape bool, cancelFunction func()) error type TaskExecution func(ctx context.Context, database database.OtterSpace, sourceUsername string, anthroveUser models.User, deepScrape bool, apiKey string, cancelFunction func()) error
type SendMessageExecution func(ctx context.Context, userSourceID string, message string)
type Server struct { type Plug struct {
address string address string
port string port string
ctx context.Context ctx context.Context
database database.OtterSpace database database.OtterSpace
taskExecutionFunction TaskExecution taskExecutionFunction TaskExecution
sendMessageExecution SendMessageExecution
source models.Source
} }
func NewServer(ctx context.Context, address string, port string) Server { func NewPlug(ctx context.Context, address string, port string, source models.Source) Plug {
return Server{ return Plug{
ctx: ctx, ctx: ctx,
address: address, address: address,
port: port, port: port,
source: source,
} }
} }
func (s *Server) Listen() error { func (p *Plug) Listen() error {
var err error var err error
lis, err := net.Listen("tcp", fmt.Sprintf("%s:%s", s.address, s.port)) plugSource, err := p.database.GetSourceByDomain(p.ctx, models.AnthroveSourceDomain(p.source.Domain))
if err != nil {
return err
}
if plugSource == nil {
log.Printf("no source found for domain %p, initilazing source!", p.source.Domain)
err := p.database.CreateSource(p.ctx, &p.source)
if err != nil {
return err
}
}
lis, err := net.Listen("tcp", fmt.Sprintf("%p:%p", p.address, p.port))
if err != nil { if err != nil {
return err return err
} }
grpcServer := grpc.NewServer() grpcServer := grpc.NewServer()
pb.RegisterPlugConnectorServer(grpcServer, NewGrpcServer(s.database, s.taskExecutionFunction)) pb.RegisterPlugConnectorServer(grpcServer, NewGrpcServer(p.database, p.taskExecutionFunction))
err = grpcServer.Serve(lis) err = grpcServer.Serve(lis)
if err != nil { if err != nil {
@ -49,10 +68,14 @@ func (s *Server) Listen() error {
return nil return nil
} }
func (s *Server) WithGraphConnection(graph database.OtterSpace) { func (p *Plug) WithOtterSpace(graph database.OtterSpace) {
s.database = graph p.database = graph
} }
func (s *Server) TaskExecutionFunction(function TaskExecution) { func (p *Plug) TaskExecutionFunction(function TaskExecution) {
s.taskExecutionFunction = function p.taskExecutionFunction = function
}
func (p *Plug) SendMessageExecution(function SendMessageExecution) {
p.sendMessageExecution = function
} }