timesheet

package
v0.0.0-...-66b7006 Latest Latest
Warning

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

Go to latest
Published: Jan 2, 2024 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ProjectDeleteRequest

type ProjectDeleteRequest struct {
	StartDate string
	EndDate   string
	ProjectId int
	TaskId    int
}

type ProjectWeekRequest

type ProjectWeekRequest struct {
	StartDate string
	EndDate   string
	ProjectId int
	TaskId    int
}

type TimeData

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

ProfileData implements database operations for user profiles

func (*TimeData) AddInitialProjectTimeEntries

func (c *TimeData) AddInitialProjectTimeEntries(profileId int, accountId int, start time.Time, end time.Time, projectId int, taskId int) error

Add 0.0 values for all the days between start and end for the project/task

func (*TimeData) DeleteProjectForDates

func (c *TimeData) DeleteProjectForDates(profileId int, accountId int, projectId int, taskId int, start time.Time, end time.Time) error

func (*TimeData) GetTimeEntriesForRange

func (c *TimeData) GetTimeEntriesForRange(profileId int, accountId int, start time.Time, end time.Time) ([]*TimeEntry, error)

func (*TimeData) SaveOrUpdateTimeEntries

func (c *TimeData) SaveOrUpdateTimeEntries(entries []*TimeEntry) error

func (*TimeData) UpdateTimeEntries

func (c *TimeData) UpdateTimeEntries(entries []*TimeEntry) error

type TimeEntry

type TimeEntry struct {
	Day         time.Time `json:"-"`
	Hours       float64   `json:"-"`
	AccountId   int       `json:"-" db:"account_id"`
	ProfileId   int       `json:"-" db:"profile_id"`
	ProjectId   int       `json:"-" db:"project_id"`
	TaskId      int       `json:"-" db:"task_id"`
	ClientName  string    `json:"-" db:"client_name"`
	ProjectName string    `json:"-" db:"project_name"`
	TaskName    string    `json:"-" db:"task_name"`
}

type TimeEntryRangeRequest

type TimeEntryRangeRequest struct {
	Entries []TimeEntryRequest
}

type TimeEntryRequest

type TimeEntryRequest struct {
	Day       string
	Hours     float64
	ProjectId int
	TaskId    int
}

type TimeEntryResponse

type TimeEntryResponse struct {
	Day         string  `json:"day"`
	Hours       float64 `json:"hours"`
	ProjectId   int     `json:"projectId"`
	TaskId      int     `json:"taskId"`
	ClientName  string  `json:"clientName"`
	ProjectName string  `json:"projectName"`
	TaskName    string  `json:"taskName"`
}

func NewTimeEntryResponse

func NewTimeEntryResponse(entry *TimeEntry) *TimeEntryResponse

type TimeRangeResponse

type TimeRangeResponse struct {
	Start       string               `json:"start"`
	End         string               `json:"end"`
	TimeEntries []*TimeEntryResponse `json:"entries"`
}

func NewTimeRange

func NewTimeRange(timeEntries []*TimeEntry, start time.Time, end time.Time) *TimeRangeResponse

type TimeResource

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

func (*TimeResource) AddInitialProjectTimeEntries

func (c *TimeResource) AddInitialProjectTimeEntries(profileId int, accountId int, start time.Time, end time.Time, projectId int, taskId int) *api.Error

func (*TimeResource) DeleteProjectForDates

func (c *TimeResource) DeleteProjectForDates(profileId int, accountId int, projectId int, taskId int, start time.Time, end time.Time) *api.Error

func (*TimeResource) GetTimeEntriesForRange

func (c *TimeResource) GetTimeEntriesForRange(profileId int, accountId int, start time.Time, end time.Time) ([]*TimeEntry, *api.Error)

func (*TimeResource) SaveOrUpdateTimeEntries

func (c *TimeResource) SaveOrUpdateTimeEntries(entries []*TimeEntry) *api.Error

func (*TimeResource) UpdateTimeEntries

func (c *TimeResource) UpdateTimeEntries(entries []*TimeEntry) *api.Error

type TimeRouter

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

func NewRouter

func NewRouter(store TimeStore, profileRouter *profile.ProfileRouter) *TimeRouter

func (*TimeRouter) Router

func (a *TimeRouter) Router() *chi.Mux

type TimeService

type TimeService interface {
	GetTimeEntriesForRange(profileId int, accountId int, start time.Time, end time.Time) ([]*TimeEntry, *api.Error)

	SaveOrUpdateTimeEntries(entries []*TimeEntry) *api.Error
	UpdateTimeEntries(entries []*TimeEntry) *api.Error
	AddInitialProjectTimeEntries(profileId int, accountId int, start time.Time, end time.Time, projectId int, taskId int) *api.Error

	DeleteProjectForDates(profileId int, accountId int, projectId int, taskId int, start time.Time, end time.Time) *api.Error
}

func NewTimeService

func NewTimeService(store TimeStore) TimeService

type TimeStore

type TimeStore interface {
	GetTimeEntriesForRange(profileId int, accountId int, start time.Time, end time.Time) ([]*TimeEntry, error)

	SaveOrUpdateTimeEntries(entries []*TimeEntry) error
	UpdateTimeEntries(entries []*TimeEntry) error

	AddInitialProjectTimeEntries(profileId int, accountId int, start time.Time, end time.Time, projectId int, taskId int) error

	DeleteProjectForDates(profileId int, accountId int, projectId int, taskId int, start time.Time, end time.Time) error
}

func NewTimeStore

func NewTimeStore(db *sqlx.DB) TimeStore

type Timesheet

type Timesheet struct {
	Days      [7]TimeEntry `json:"-"`
	StartDate time.Time    `json:"-"`
	Status    string       `json:"-"`
}

Jump to

Keyboard shortcuts

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