Refactor API

pull/79/head
Aloïs Micard 3 years ago
parent 6b54772ac4
commit dea2cfe7b0
No known key found for this signature in database
GPG Key ID: 1A0EB82F071F5EFE

@ -64,7 +64,7 @@ func execute(c *cli.Context) error {
// Create the service
svc, err := service.New(c)
if err != nil {
log.Err(err).Msg("Unable to start API")
log.Err(err).Msg("error while creating API service")
return err
}

@ -1,10 +1,11 @@
package service
import (
"fmt"
"github.com/creekorful/trandoshan/api"
"github.com/creekorful/trandoshan/internal/api/database"
"github.com/creekorful/trandoshan/internal/duration"
"github.com/creekorful/trandoshan/internal/messaging"
"github.com/creekorful/trandoshan/internal/event"
"github.com/rs/zerolog/log"
"github.com/urfave/cli/v2"
"time"
@ -20,24 +21,22 @@ type Service interface {
type svc struct {
db database.Database
pub messaging.Publisher
pub event.Publisher
refreshDelay time.Duration
}
// New create a new Service instance
func New(c *cli.Context) (Service, error) {
// Connect to the messaging server
pub, err := messaging.NewPublisher(c.String("hub-uri"))
pub, err := event.NewPublisher(c.String("hub-uri"))
if err != nil {
log.Err(err).Str("uri", c.String("hub-uri")).Msg("Error while connecting to hub server")
return nil, err
return nil, fmt.Errorf("error while connecting to hub server: %s", err)
}
// Create Elasticsearch client
db, err := database.NewElasticDB(c.String("elasticsearch-uri"))
if err != nil {
log.Err(err).Msg("Error while connecting to the database")
return nil, err
return nil, fmt.Errorf("error while connecting to the database: %s", err)
}
refreshDelay := duration.ParseDuration(c.String("refresh-delay"))
@ -128,7 +127,7 @@ func (s *svc) AddResource(res api.ResourceDto) (api.ResourceDto, error) {
func (s *svc) ScheduleURL(url string) error {
// Publish the URL
if err := s.pub.PublishMsg(&messaging.URLFoundMsg{URL: url}); err != nil {
if err := s.pub.Publish(&event.FoundURLEvent{URL: url}); err != nil {
log.Err(err).Msg("Unable to publish URL")
return err
}

@ -4,8 +4,8 @@ import (
"github.com/creekorful/trandoshan/api"
"github.com/creekorful/trandoshan/internal/api/database"
"github.com/creekorful/trandoshan/internal/api/database_mock"
"github.com/creekorful/trandoshan/internal/messaging"
"github.com/creekorful/trandoshan/internal/messaging_mock"
"github.com/creekorful/trandoshan/internal/event"
"github.com/creekorful/trandoshan/internal/event_mock"
"github.com/golang/mock/gomock"
"testing"
"time"
@ -173,11 +173,11 @@ func TestScheduleURL(t *testing.T) {
mockCtrl := gomock.NewController(t)
defer mockCtrl.Finish()
pubMock := messaging_mock.NewMockPublisher(mockCtrl)
pubMock := event_mock.NewMockPublisher(mockCtrl)
s := svc{pub: pubMock}
pubMock.EXPECT().PublishMsg(&messaging.URLFoundMsg{URL: "https://example.onion"})
pubMock.EXPECT().Publish(&event.FoundURLEvent{URL: "https://example.onion"})
if err := s.ScheduleURL("https://example.onion"); err != nil {
t.FailNow()

Loading…
Cancel
Save