usecase

package
v0.0.0-...-d078efc Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 21, 2020 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrUserAlreadyExist is returned when user already exist in registration.
	ErrUserAlreadyExist = errors.New("user already exist")
)

Functions

This section is empty.

Types

type BatchUsecase

type BatchUsecase interface {
	CollectTweets(ctx context.Context, searchID model.SearchID, userID model.UserID) error
}

BatchUsecase provides usecases of Batch domain.

func NewBatchUsecase

func NewBatchUsecase(input *NewBatchUsecaseInput) BatchUsecase

NewBatchUsecase creates BatchUsecase.

type NewBatchUsecaseInput

type NewBatchUsecaseInput struct {
	UserUsecase       UserUsecase
	SearchUsecase     SearchUsecase
	TweetRepository   repository.TweetRepository
	TwitterClient     twitter.Client
	SentimentDetector sentiment.Detector
}

NewBatchUsecaseInput is the input of NewBatchUsecase.

type SearchUsecase

type SearchUsecase interface {
	ListShouldUpdateSearches(ctx context.Context) ([]*model.Search, error)
	ListByUserID(ctx context.Context, userID model.UserID) ([]*model.Search, error)
	ListUserSearches(ctx context.Context) ([]*model.Search, error)
	Find(ctx context.Context, searchID model.SearchID, userID model.UserID) (*model.Search, error)
	GetUserSearch(ctx context.Context, searchID model.SearchID) (*model.Search, error)
	DeleteUserSearch(ctx context.Context, searchID model.SearchID) error
	Create(ctx context.Context, input *SearchUsecaseCreateInput) (*model.Search, error)
	UpdateNextUpdateAt(ctx context.Context, search *model.Search) error
}

SearchUsecase provides usecases of Search domain.

func NewSearchUsecase

func NewSearchUsecase(authenticator auth.Authenticator, validator validator.Validator, searchRepository repository.SearchRepository) SearchUsecase

NewSearchUsecase creates SearchUsecase.

type SearchUsecaseCreateInput

type SearchUsecaseCreateInput struct {
	Query string `validate:"required,gte=3,lte=100"`
}

SearchUsecaseCreateInput is the input of SearchUsecase.Create().

type UserUsecase

type UserUsecase interface {
	FetchAuthUser(ctx context.Context) (*model.User, error)
	FindByID(ctx context.Context, userID model.UserID) (*model.User, error)
	Register(ctx context.Context, input UserUsecaseRegisterInput) (*model.User, error)
}

UserUsecase provides usecases of User domain.

func NewUserUsecase

func NewUserUsecase(authenticator auth.Authenticator, userRepository repository.UserRepository) UserUsecase

NewUserUsecase creates UserUsecase.

type UserUsecaseRegisterInput

type UserUsecaseRegisterInput struct {
	TwitterAccessToken       string
	TwitterAccessTokenSecret string
}

UserUsecaseRegisterInput represents the input of Register method.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL