From 6be508532e37bd21df907bef8e03b0af9fa32232 Mon Sep 17 00:00:00 2001 From: David Janowski Date: Mon, 8 Jul 2024 14:33:06 +0200 Subject: [PATCH] feat: added Message Functions and renamed to be more clean --- pkg/plug/server.go | 47 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/pkg/plug/server.go b/pkg/plug/server.go index 04b2579..d187d22 100644 --- a/pkg/plug/server.go +++ b/pkg/plug/server.go @@ -3,43 +3,62 @@ package plug import ( "context" "fmt" + "log" + "net" + "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/database" "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/models" - "net" pb "git.dragse.it/anthrove/plug-sdk/pkg/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 port string ctx context.Context database database.OtterSpace taskExecutionFunction TaskExecution + sendMessageExecution SendMessageExecution + source models.Source } -func NewServer(ctx context.Context, address string, port string) Server { - return Server{ +func NewPlug(ctx context.Context, address string, port string, source models.Source) Plug { + return Plug{ ctx: ctx, address: address, port: port, + source: source, } } -func (s *Server) Listen() error { +func (p *Plug) Listen() 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 { return err } grpcServer := grpc.NewServer() - pb.RegisterPlugConnectorServer(grpcServer, NewGrpcServer(s.database, s.taskExecutionFunction)) + pb.RegisterPlugConnectorServer(grpcServer, NewGrpcServer(p.database, p.taskExecutionFunction)) err = grpcServer.Serve(lis) if err != nil { @@ -49,10 +68,14 @@ func (s *Server) Listen() error { return nil } -func (s *Server) WithGraphConnection(graph database.OtterSpace) { - s.database = graph +func (p *Plug) WithOtterSpace(graph database.OtterSpace) { + p.database = graph } -func (s *Server) TaskExecutionFunction(function TaskExecution) { - s.taskExecutionFunction = function +func (p *Plug) TaskExecutionFunction(function TaskExecution) { + p.taskExecutionFunction = function +} + +func (p *Plug) SendMessageExecution(function SendMessageExecution) { + p.sendMessageExecution = function }