time_entry

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2022 License: GPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotFound  = errors.New("user not found")
	ErrInvalidID = errors.New("ID is not in its proper form")
)

Set of error variables for CRUD operations.

Functions

This section is empty.

Types

type Core

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

Core manages the set of APIs for user access.

func NewCore

func NewCore(log *zap.SugaredLogger, sqlxDB *sqlx.DB) Core

NewCore constructs a core for user api access.

func (Core) Create

func (c Core) Create(ctx context.Context, nt NewTimeEntry, userID string, now time.Time) (TimeEntry, error)

Create inserts a new time entry into the database.

func (Core) Delete

func (c Core) Delete(ctx context.Context, timeEntryID string) error

Delete removes a time_entry from the database.

func (Core) QueryByID

func (c Core) QueryByID(ctx context.Context, timeEntryID string) (TimeEntry, error)

QueryByID gets the specified time_entry from the database.

func (Core) QueryDash

func (c Core) QueryDash(ctx context.Context, UserID string) ([]TimeEntry, error)

QueryDash retrieves a list of existing time entry from the database.

func (Core) QueryRange

func (c Core) QueryRange(ctx context.Context, userID string, pageNumber, rowsPerPage int, start, end time.Time) ([]TimeEntry, error)

QueryRange retrieves a list of existing time entry from the database.

func (Core) QueryRunning

func (c Core) QueryRunning(ctx context.Context, userID string, pageNumber int, rowsPerPage int) ([]TimeEntry, error)

QueryRunning retrieves a list of existing time entry from the database.

func (Core) Start

func (c Core) Start(ctx context.Context, st StartTimeEntry, userID string, now time.Time) (TimeEntry, error)

Start inserts a new time entry into the database.

func (Core) Stop

func (c Core) Stop(ctx context.Context, TimeEntryID string, now time.Time) (TimeEntry, error)

Stop replaces a time_entry document in the database.

func (Core) SyncProjectTime

func (c Core) SyncProjectTime(ctx context.Context, projectID string, now time.Time) error

SyncProjectTime sync the specified project time from the database.

func (Core) SyncTaskTime

func (c Core) SyncTaskTime(ctx context.Context, taskID string, now time.Time) error

SyncTaskTime sync the specified task time from the database.

func (Core) Update

func (c Core) Update(ctx context.Context, TimeEntryID string, ut UpdateTimeEntry, now time.Time) error

Update replaces a time_entry document in the database.

func (Core) UpdateTags

func (c Core) UpdateTags(ctx context.Context, TimeEntryID string, ut UpdateTimeEntryTags, now time.Time) error

UpdateTags replaces a time_entry document in the database.

type NewTimeEntry

type NewTimeEntry struct {
	Description string        `json:"description"`
	Wid         string        `json:"wid"`
	Pid         string        `json:"pid"`
	Tid         string        `json:"tid"`
	Billable    bool          `json:"billable"`
	Start       time.Time     `json:"start" validate:"required"`
	Stop        time.Time     `json:"stop"`
	Duration    time.Duration `json:"duration" validate:"required"`
	CreatedWith string        `json:"created_with" validate:"required"`
	Tags        []string      `json:"tags"`
	DurOnly     bool          `json:"dur_only"`
}

NewTimeEntry contains information needed to create a new time_entry.

type StartTimeEntry

type StartTimeEntry struct {
	Description string   `json:"description"`
	Wid         string   `json:"wid"`
	Pid         string   `json:"pid"`
	Tid         string   `json:"tid"`
	Billable    bool     `json:"billable"`
	CreatedWith string   `json:"created_with" validate:"required"`
	Tags        []string `json:"tags"`
	DurOnly     bool     `json:"dur_only"`
}

StartTimeEntry contains information needed to start a new time_entry.

type TimeEntry

type TimeEntry struct {
	ID          string        `json:"id"`
	Description string        `json:"description"`
	Uid         string        `json:"uid"`
	Wid         string        `json:"wid"`
	Pid         string        `json:"pid"`
	Tid         string        `json:"tid"`
	Billable    bool          `json:"billable"`
	Start       time.Time     `json:"start"`
	Stop        time.Time     `json:"stop"`
	Duration    time.Duration `json:"duration"`
	CreatedWith string        `json:"created_with"`
	Tags        []string      `json:"tags"`
	DurOnly     bool          `json:"dur_only"`
	DateCreated time.Time     `json:"date_created"`
	DateUpdated time.Time     `json:"date_updated"`
}

TimeEntry represents an individual time_entry.

type UpdateTimeEntry

type UpdateTimeEntry struct {
	Description *string    `json:"description"`
	Billable    *bool      `json:"billable"`
	Start       *time.Time `json:"start"`
	Stop        *time.Time `json:"stop"`
	CreatedWith *string    `json:"created_with"`
	Tags        []string   `json:"tags"`
	DurOnly     *bool      `json:"dur_only"`
}

UpdateTimeEntry defines what information may be provided to modify an existing time_entry. All fields are optional so time_entry can send just the fields they want changed. It uses pointer fields ,so we can differentiate between a field that was not provided and a field that was provided as explicitly blank. Normally we do not want to use pointers to basic types ,but we make exceptions around marshalling/unmarshalling.

type UpdateTimeEntryTags

type UpdateTimeEntryTags struct {
	Tags    []string `json:"tags" validate:"required"`
	TagMode string   `json:"tag_mode" validate:"required"`
}

UpdateTimeEntryTags contains information needed to update bulk of time_entry tags.

Directories

Path Synopsis
Package db contains TimeEntry related CRUD functionality.
Package db contains TimeEntry related CRUD functionality.

Jump to

Keyboard shortcuts

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