toggl

package
v0.0.0-...-8f5f1a1 Latest Latest
Warning

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

Go to latest
Published: Sep 6, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	ID        int
	Name      string
	Workspace Workspace
}

A Client describes a time reporting client

type ClientRepository

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

ClientRepository provides read/write access to Toggl clients.

func (*ClientRepository) CreateClient

func (repository *ClientRepository) CreateClient(workspaceID int, name string) (Client, error)

CreateClient creates a new client with the given name. Returns an error of the creation failed.

func (*ClientRepository) GetClientByID

func (repository *ClientRepository) GetClientByID(clientID int) (Client, error)

GetClientByID returns the client for the given client id. Returns an error if the client was not found.

func (*ClientRepository) GetClientByName

func (repository *ClientRepository) GetClientByName(workspaceName, clientName string) (Client, error)

GetClientByName returns the client for the given client name. Returns an error if no matching client was found.

func (*ClientRepository) GetClients

func (repository *ClientRepository) GetClients() ([]Client, error)

GetClients returns all clients.

type Clienter

type Clienter interface {
	// CreateClient creates a new client with the given name.
	// Returns an error of the creation failed.
	CreateClient(workspaceID int, name string) (Client, error)

	// GetClients returns all clients.
	GetClients() ([]Client, error)

	// GetClientByID returns the client for the given client id.
	// Returns an error if the client was not found.
	GetClientByID(clientID int) (Client, error)

	// GetClientByName returns the client for the given client name.
	// Returns an error if no matching client was found.
	GetClientByName(workspaceName, clientName string) (Client, error)
}

A Clienter interface provides read/write access to Toggl clients.

func NewClientRepository

func NewClientRepository(clientAPI model.ClientAPI, workspaceProvider Workspacer) Clienter

NewClientRepository creates a new client repository instance.

type Project

type Project struct {
	ID        int
	Name      string
	Client    Client
	Workspace Workspace
}

A Project describes a time reporting project (e.g. "Manhattan Project")

type ProjectRepository

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

ProjectRepository provides read/write access to Toggl projects.

func (*ProjectRepository) CreateProject

func (repository *ProjectRepository) CreateProject(projectName, workspaceName, clientName string) (Project, error)

CreateProject creates a new project with the given name. Returns an error of the creation failed.

func (*ProjectRepository) GetProjectByID

func (repository *ProjectRepository) GetProjectByID(projectID int) (Project, error)

GetProjectByID returns the project for the given project id. Returns an error if the project was not found.

func (*ProjectRepository) GetProjectByName

func (repository *ProjectRepository) GetProjectByName(projectName, workspaceName, clientName string) (Project, error)

GetProjectByName returns the project for the given project name. Returns an error if no matching project was found.

func (*ProjectRepository) GetProjects

func (repository *ProjectRepository) GetProjects() ([]Project, error)

GetProjects returns all projects.

type Projecter

type Projecter interface {
	// CreateProject creates a new project with the given name.
	// Returns an error of the creation failed.
	CreateProject(projectName, workspaceName, clientName string) (Project, error)

	// GetProjects returns all projects.
	GetProjects() ([]Project, error)

	// GetProjectByID returns the project for the given project id.
	// Returns an error if the project was not found.
	GetProjectByID(projectID int) (Project, error)

	// GetProjectByName returns the project for the given project name.
	// Returns an error if no matching project was found.
	GetProjectByName(projectName, workspaceName, clientName string) (Project, error)
}

A Projecter interface provides read/write access to Toggl projects.

func NewProjectRepository

func NewProjectRepository(projectAPI model.ProjectAPI, workspaceProvider Workspacer, clientProvider Clienter) Projecter

NewProjectRepository creates a new project repository instance.

type TimeRecord

type TimeRecord struct {
	WorkspaceName string
	ProjectName   string
	ClientName    string

	Start       time.Time
	Stop        time.Time
	Description string
	Tags        []string
}

TimeRecord represents a single time tracking record

type TimeRecordRepository

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

TimeRecordRepository provides read/write access to the Toggl time records.

func (*TimeRecordRepository) CreateTimeRecord

func (repository *TimeRecordRepository) CreateTimeRecord(timeRecord TimeRecord) error

CreateTimeRecord creates a new time record. Returns an error if the creation failed.

func (*TimeRecordRepository) GetTimeRecords

func (repository *TimeRecordRepository) GetTimeRecords(start, stop time.Time) ([]TimeRecord, error)

GetTimeRecords returns all time records from the given start date until the given stop date. Returns an error of the time records could not be retrieved.

type TimeRecorder

type TimeRecorder interface {
	// CreateTimeRecord creates a new time record.
	// Returns an error if the creation failed.
	CreateTimeRecord(timeRecord TimeRecord) error

	// GetTimeRecords returns all time records from the given start date until the given stop date.
	// Returns an error of the time records could not be retrieved.
	GetTimeRecords(start, stop time.Time) ([]TimeRecord, error)
}

A TimeRecorder interface provides functions for reading and writing time records.

func NewTimeRecordRepository

func NewTimeRecordRepository(
	timeEntryAPI model.TimeEntryAPI,
	workspaceRepository Workspacer,
	projectRepository Projecter,
	clientRepository Clienter) TimeRecorder

NewTimeRecordRepository creates a new time record repository instance.

type Workspace

type Workspace struct {
	ID   int
	Name string
}

A Workspace defines a grouping for time reporting entries (e.g. "Company XY")

type WorkspaceRepository

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

WorkspaceRepository provides read access to the Toggl workspaces. Write is unfortunately not supported by the Toggl API.

func (*WorkspaceRepository) CreateWorkspace

func (repository *WorkspaceRepository) CreateWorkspace(name string) (Workspace, error)

CreateWorkspace creates a new Toggl workspace.

func (*WorkspaceRepository) GetWorkspaceByID

func (repository *WorkspaceRepository) GetWorkspaceByID(workspaceID int) (Workspace, error)

GetWorkspaceByID returns the workspace for the given workspace id. Returns an error if the workspace was not found.

func (*WorkspaceRepository) GetWorkspaceByName

func (repository *WorkspaceRepository) GetWorkspaceByName(workspaceName string) (Workspace, error)

GetWorkspaceByName returns the workspace for the given workspace name. Returns an error if no matching workspace was found.

func (*WorkspaceRepository) GetWorkspaces

func (repository *WorkspaceRepository) GetWorkspaces() ([]Workspace, error)

GetWorkspaces returns all available workspaces.

type Workspacer

type Workspacer interface {
	// CreateWorkspace creates a new Toggl workspace.
	CreateWorkspace(name string) (Workspace, error)

	// GetWorkspaces returns all available workspaces.
	GetWorkspaces() ([]Workspace, error)

	// GetWorkspaceByID returns the workspace for the given workspace id.
	// Returns an error if the workspace was not found.
	GetWorkspaceByID(workspaceID int) (Workspace, error)

	// GetWorkspaceByName returns the workspace for the given workspace name.
	// Returns an error if no matching workspace was found.
	GetWorkspaceByName(workspaceName string) (Workspace, error)
}

A Workspacer interface provides read/write access to Toggl workspaces.

func NewWorkspaceRepository

func NewWorkspaceRepository(workspaceAPI model.WorkspaceAPI) Workspacer

NewWorkspaceRepository creates a new workspace provider instance.

Jump to

Keyboard shortcuts

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