generated from VLADIMIR/template
fix
This commit is contained in:
@@ -18,18 +18,25 @@ import (
|
||||
const maxTicketsPerRequest = 100
|
||||
|
||||
var (
|
||||
// ErrInvalidTicketCount indicates that the requested ticket count is invalid.
|
||||
ErrInvalidTicketCount = errors.New("количество билетов должно быть от 1 до 100")
|
||||
ErrInvalidBaseURL = errors.New("необходимо настроить APP_BASE_URL — публичный адрес приложения")
|
||||
ErrTicketNotFound = errors.New("Билет не найден")
|
||||
ErrTicketUsed = errors.New("Билет уже использован")
|
||||
ErrGameFinished = errors.New("Игра уже завершена")
|
||||
// ErrInvalidBaseURL indicates that the public application URL is missing.
|
||||
ErrInvalidBaseURL = errors.New("необходимо настроить APP_BASE_URL — публичный адрес приложения")
|
||||
// ErrTicketNotFound indicates that a ticket was not found.
|
||||
ErrTicketNotFound = errors.New("Билет не найден")
|
||||
// ErrTicketUsed indicates that a ticket was already used.
|
||||
ErrTicketUsed = errors.New("Билет уже использован")
|
||||
// ErrGameFinished indicates that the game has finished.
|
||||
ErrGameFinished = errors.New("Игра уже завершена")
|
||||
)
|
||||
|
||||
// Ticket describes an issued support ticket.
|
||||
type Ticket struct {
|
||||
ID int
|
||||
URL string
|
||||
}
|
||||
|
||||
// Page contains tickets returned for a user.
|
||||
type Page struct {
|
||||
ID int
|
||||
Status string
|
||||
@@ -41,15 +48,18 @@ type Page struct {
|
||||
UsedBy *string
|
||||
}
|
||||
|
||||
// TicketService handles support tickets.
|
||||
type TicketService struct {
|
||||
repo *tickets_repo.Repo
|
||||
appBaseURL string
|
||||
}
|
||||
|
||||
// NewTicketService creates a ticket service.
|
||||
func NewTicketService(repo *tickets_repo.Repo, appBaseURL string) *TicketService {
|
||||
return &TicketService{repo: repo, appBaseURL: appBaseURL}
|
||||
}
|
||||
|
||||
// Issue creates tickets for a game.
|
||||
func (s *TicketService) Issue(ctx context.Context, gameID, count int) ([]*Ticket, error) {
|
||||
if count < 1 || count > maxTicketsPerRequest {
|
||||
return nil, ErrInvalidTicketCount
|
||||
@@ -87,6 +97,7 @@ func (s *TicketService) Issue(ctx context.Context, gameID, count int) ([]*Ticket
|
||||
return tickets, nil
|
||||
}
|
||||
|
||||
// Get returns tickets associated with a token.
|
||||
func (s *TicketService) Get(ctx context.Context, token string) (*Page, error) {
|
||||
hash, err := tokenHash(token)
|
||||
if err != nil {
|
||||
@@ -108,6 +119,7 @@ func (s *TicketService) Get(ctx context.Context, token string) (*Page, error) {
|
||||
}, nil
|
||||
}
|
||||
|
||||
// Accept assigns a ticket to a user.
|
||||
func (s *TicketService) Accept(ctx context.Context, token string, userID int) (*Page, error) {
|
||||
hash, err := tokenHash(token)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user