data

package
v0.0.0-...-52be0da Latest Latest
Warning

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

Go to latest
Published: Jan 30, 2017 License: MIT Imports: 11 Imported by: 0

Documentation

Index

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)

func (*PassRepository) Insert

func (r *PassRepository) Insert(pass *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 (s *PassService) EnsurePass(team *models.Team, user *models.TeamUser, project *models.Project) (*models.Pass, error)

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)

func (*TeamRepository) FindByID

func (r *TeamRepository) FindByID(teamID 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 NewTeamService

func NewTeamService(session *mgo.Session) *TeamService

NewTeamService 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

func (*TeamService) FindByID

func (s *TeamService) FindByID(teamID string) (*models.Team, error)

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

func (r *TimerRepository) CreateTimer(timer *models.Timer) (*models.Timer, error)

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 (s *TimerService) DeleteUserTimer(user *models.TeamUser, timer *models.Timer) error

func (*TimerService) FindByID

func (s *TimerService) FindByID(id string) (*models.Timer, error)

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 (s *TimerService) UpdateUserTimer(user *models.TeamUser, timer *models.Timer, newData *models.Timer) error

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)

func (*UserRepository) FindByID

func (r *UserRepository) FindByID(userID string) (*models.TeamUser, error)

func (*UserRepository) Save

func (r *UserRepository) Save(user *models.TeamUser) (*models.TeamUser, error)

type UserService

type UserService struct {
	// contains filtered or unexported fields
}

func NewUserService

func NewUserService(session *mgo.Session) *UserService

func (*UserService) EnsureUser

func (s *UserService) EnsureUser(team *models.Team, externalUserID string) (*models.TeamUser, error)

func (*UserService) FindByID

func (s *UserService) FindByID(id string) (*models.TeamUser, error)

Jump to

Keyboard shortcuts

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