Documentation ¶
Index ¶
- type PassRepository
- type PassService
- type StalePassesRemover
- type TeamRepository
- func (r *TeamRepository) AddProject(team *models.Team, externalProjectID, externalProjectName string) error
- func (r *TeamRepository) CreateTeam(externalID, externalName string) (*models.Team, error)
- func (r *TeamRepository) FindByExternalID(externalTeamID string) (*models.Team, error)
- func (r *TeamRepository) FindByID(teamID string) (*models.Team, error)
- type TeamRepositoryInterface
- type TeamService
- type TimerRepository
- type TimerService
- func (s *TimerService) CalculateMinutesForActiveTimer(timer *models.Timer) int
- func (s *TimerService) CompleteActiveTimersAtMidnight(utcNow *time.Time) error
- func (s *TimerService) DeleteUserTimer(user *models.TeamUser, timer *models.Timer) error
- func (s *TimerService) FindByID(id string) (*models.Timer, error)
- func (s *TimerService) GetActiveTimer(teamID, userID string) (*models.Timer, error)
- func (s *TimerService) GetCompletedTasksForDay(year int, month time.Month, day int, user *models.TeamUser) ([]*models.TaskAggregation, error)
- func (s *TimerService) GetUserTimersByRange(startDate, endDate string, user *models.TeamUser) ([]*models.Timer, error)
- func (s *TimerService) StartTimer(teamID string, project *models.Project, user *models.TeamUser, taskName string) (*models.Timer, error)
- func (s *TimerService) StopTimer(timer *models.Timer) error
- func (s *TimerService) TotalCompletedMinutesForDay(year int, month time.Month, day int, user *models.TeamUser) int
- func (s *TimerService) TotalMinutesForTaskToday(timer *models.Timer) int
- func (s *TimerService) UpdateUserTimer(user *models.TeamUser, timer *models.Timer, newData *models.Timer) error
- func (s *TimerService) UserMonthStatistics(user *models.TeamUser, date string) ([]*models.UserStatisticsAggregation, error)
- type UserRepository
- type UserService
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type PassRepository ¶
type PassRepository struct {
// contains filtered or unexported fields
}
func NewPassRepository ¶
func NewPassRepository(session *mgo.Session) *PassRepository
func (*PassRepository) FindActiveByUserID ¶
func (r *PassRepository) FindActiveByUserID(userID string) (*models.Pass, error)
func (*PassRepository) FindActivePassByToken ¶
func (r *PassRepository) FindActivePassByToken(token string) (*models.Pass, error)
type PassService ¶
type PassService struct {
// contains filtered or unexported fields
}
func NewPassService ¶
func NewPassService(session *mgo.Session) *PassService
func (*PassService) EnsurePass ¶
func (*PassService) FindPassByToken ¶
func (s *PassService) FindPassByToken(token string) (*models.Pass, error)
func (*PassService) RemoveStalePasses ¶
func (s *PassService) RemoveStalePasses() error
type StalePassesRemover ¶
type StalePassesRemover interface {
// contains filtered or unexported methods
}
type TeamRepository ¶
type TeamRepository struct {
// contains filtered or unexported fields
}
TeamRepository todo
func NewTeamRepository ¶
func NewTeamRepository(session *mgo.Session) *TeamRepository
NewTeamRepository is a factory method
func (*TeamRepository) AddProject ¶
func (r *TeamRepository) AddProject(team *models.Team, externalProjectID, externalProjectName string) error
func (*TeamRepository) CreateTeam ¶
func (r *TeamRepository) CreateTeam(externalID, externalName string) (*models.Team, error)
CreateTeam creates a new team - this method used for tests only!
func (*TeamRepository) FindByExternalID ¶
func (r *TeamRepository) FindByExternalID(externalTeamID string) (*models.Team, error)
type TeamRepositoryInterface ¶
type TeamRepositoryInterface interface { FindByExternalID(externalTeamID string) (*models.Team, error) FindByID(teamID string) (*models.Team, error) CreateTeam(externalID, externalName string) (*models.Team, error) AddProject(team *models.Team, externalProjectID, externalProjectName string) error // contains filtered or unexported methods }
TeamRepositoryInterface describes the functionality this repo provides. It has two implementations `TeamRepository` and `testTeamRepository`. The latter used to mimic/test error cases
type TeamService ¶
type TeamService struct {
// contains filtered or unexported fields
}
TeamService todo
func (*TeamService) CreateOrUpdateWithSlackOAuthResponse ¶
func (s *TeamService) CreateOrUpdateWithSlackOAuthResponse(slackOAuthResponse *slack.OAuthResponse) error
func (*TeamService) EnsureTeamSetUp ¶
func (s *TeamService) EnsureTeamSetUp(slackCommand *models.SlackCustomCommand) (*models.Team, *models.Project, error)
EnsureTeamSetUp creates Team, User and Project if either is not in database yet
type TimerRepository ¶
type TimerRepository struct {
// contains filtered or unexported fields
}
TimerRepository todo
func NewTimerRepository ¶
func NewTimerRepository(session *mgo.Session) *TimerRepository
NewTimerRepository todo
func (*TimerRepository) CreateTimer ¶
type TimerService ¶
type TimerService struct {
// contains filtered or unexported fields
}
TimerService - the structure of the service
func NewTimerService ¶
func NewTimerService(session *mgo.Session) *TimerService
NewTimerService constructs an instance of the service
func (*TimerService) CalculateMinutesForActiveTimer ¶
func (s *TimerService) CalculateMinutesForActiveTimer(timer *models.Timer) int
func (*TimerService) CompleteActiveTimersAtMidnight ¶
func (s *TimerService) CompleteActiveTimersAtMidnight(utcNow *time.Time) error
func (*TimerService) DeleteUserTimer ¶
func (*TimerService) GetActiveTimer ¶
func (s *TimerService) GetActiveTimer(teamID, userID string) (*models.Timer, error)
GetActiveTimer returns a timer the user is currently working on
func (*TimerService) GetCompletedTasksForDay ¶
func (s *TimerService) GetCompletedTasksForDay(year int, month time.Month, day int, user *models.TeamUser) ([]*models.TaskAggregation, error)
GetCompletedTasksForDay - returns the list of tasks the user had completed during given work day by his/her timezone - year, month, day - is the day to get the list of completed tasks for - user - whose tasks the viewer is interested in
func (*TimerService) GetUserTimersByRange ¶
func (s *TimerService) GetUserTimersByRange(startDate, endDate string, user *models.TeamUser) ([]*models.Timer, error)
Returns all user tasks for range(startDate...endDate). Range couldn't be more than 31 day
func (*TimerService) StartTimer ¶
func (s *TimerService) StartTimer(teamID string, project *models.Project, user *models.TeamUser, taskName string) (*models.Timer, error)
StartTimer creates a new timer
func (*TimerService) StopTimer ¶
func (s *TimerService) StopTimer(timer *models.Timer) error
StopTimer stops the timer and updates its Minutes field
func (*TimerService) TotalCompletedMinutesForDay ¶
func (s *TimerService) TotalCompletedMinutesForDay(year int, month time.Month, day int, user *models.TeamUser) int
UserTotalMinutesForToday calculates the total number of minute this user contributed to any project today
func (*TimerService) TotalMinutesForTaskToday ¶
func (s *TimerService) TotalMinutesForTaskToday(timer *models.Timer) int
TotalMinutesForTaskToday calculates the total number of minutes the user was/is working on particular task today
func (*TimerService) UpdateUserTimer ¶
func (*TimerService) UserMonthStatistics ¶
func (s *TimerService) UserMonthStatistics(user *models.TeamUser, date string) ([]*models.UserStatisticsAggregation, error)
type UserRepository ¶
type UserRepository struct {
// contains filtered or unexported fields
}
func NewUserRepository ¶
func NewUserRepository(session *mgo.Session) *UserRepository
func (*UserRepository) FindByExternalID ¶
func (r *UserRepository) FindByExternalID(externalUserID string) (*models.TeamUser, error)
type UserService ¶
type UserService struct {
// contains filtered or unexported fields
}
func NewUserService ¶
func NewUserService(session *mgo.Session) *UserService