internal

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2021 License: MIT Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthUsecase

type AuthUsecase interface {
	SSO(token string, authenticator SSOAuthenticator) (*entity.User, error)
	GetUserFromToken(token string, tokenizer Tokenizer) (*entity.User, error)
	GenerateAuthToken(user entity.User, tokenizer Tokenizer) (string, error)
}

type DiscussionRepository

type DiscussionRepository interface {
	GetDiscussionsByID(discussionID interface{}) (*entity.Discussion, error)
	GetDiscussionByCode(code string) (*entity.Discussion, error)
	GetDiscussionsByUserID(userID interface{}) ([]*entity.Discussion, error)
	Create(param entity.CreateDiscussionParam) (*entity.Discussion, error)
	AddMember(discussionID interface{}, userID interface{}) error
	RemoveMember(discussionID interface{}, userID interface{}) error
	UpdateByID(discussionID interface{}, param entity.UpdateDiscussionParam) error
	UpdatePasswordByID(discussionID interface{}, password string) error
	UpdatePhotoByID(discussionID interface{}, url string) error
	DeleteByID(discussionID interface{}) error
}

type DiscussionUsecase

type DiscussionUsecase interface {
	GetAllUserDiscussions(userID interface{}) ([]*entity.Discussion, error)
	GetDiscussionByID(discussionID interface{}) (*entity.Discussion, error)
	GetDiscussionByCode(code string) (*entity.Discussion, error)
	Create(param entity.CreateDiscussionParam) (*entity.Discussion, error)
	JoinDiscussion(param entity.JoinDiscussionParam) (*entity.Discussion, error)
	LeaveDiscussion(discussionID interface{}, userID interface{}) error
	Update(discussionID interface{}, param entity.UpdateDiscussionParam) error
	UpdatePassword(discussionID interface{}, param entity.UpdateDiscussionPassword) error
	UpdatePhoto(discussionID interface{}, url string) error
	Delete(discussionID interface{}) error
}

type MessageRepository

type MessageRepository interface {
	Create(param entity.CreateMessage) (*entity.Message, error)
	GetPaginatedMessagesByDiscussionID(discussionID interface{}, size, page int) ([]*entity.Message, error)
}

type MessageUsecase

type MessageUsecase interface {
	GetMessagesByDiscussionID(discussionID interface{}, size, page int) ([]*entity.Message, error)
	SendMessage(pubsub PubSub, message entity.CreateMessage) (*entity.Message, error)
}

type PubSub

type PubSub interface {
	Publish(channel string, message interface{}) error
	Subscribe(channels ...string) error
	Unsubscribe(channels ...string) error
	Listen(listener SubscribeListener)
	Close() error
}

type SSOAuthenticator

type SSOAuthenticator interface {
	Authenticate(token string) (*entity.User, error)
}

type SubscribeListener

type SubscribeListener func(channel string, message interface{})

type Tokenizer

type Tokenizer interface {
	Generate(entity.TokenPayload) (string, error)
	Parse(token string) (*entity.TokenPayload, error)
}

type UserRepository

type UserRepository interface {
	GetUserByID(userID interface{}) (*entity.User, error)
	GetUserByEmail(email string) (*entity.User, error)
	Create(param entity.CreateUserParam) (*entity.User, error)
}

Directories

Path Synopsis
delivery
web
ws
repository
service

Jump to

Keyboard shortcuts

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