package consume import ( "query-service/internal/usecases/databaseinfo" "query-service/internal/usecases/produce" "query-service/internal/usecases/request" "git.science.uu.nl/datastrophe/broker" "git.science.uu.nl/datastrophe/query-conversion" ) // Service wraps consumer methods // broker is Alice broker created in brockerdriver driver type Service struct { brokerDriver broker.Interface producer produce.UseCase queryConverter query.Converter requestSender request.UseCase databaseInfoService databaseinfo.UseCase } // NewService creates a new service func NewService(broker broker.Interface, produceService produce.UseCase, queryConverter query.Converter, requestSenderService request.UseCase, databaseInfoService databaseinfo.UseCase) *Service { return &Service{ brokerDriver: broker, producer: produceService, queryConverter: queryConverter, requestSender: requestSenderService, databaseInfoService: databaseInfoService, } } // Start starts consuming func (s *Service) Start() { // Create consumer consumer := s.brokerDriver.CreateConsumer("requests-exchange", "aql-query-queue", "aql-query-request") consumer.SetMessageHandler(s.HandleMessage) // Start consuming messages consumer.ConsumeMessages() }