reef

package
v0.0.0-...-c65fa68 Latest Latest
Warning

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

Go to latest
Published: Nov 15, 2020 License: GPL-3.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RunWebServer

func RunWebServer(opts *ReefOpts)

Types

type BackendOpts

type BackendOpts struct {
	DatabaseDirectory string // Directory for the database files
}

type BasicAuthHandler

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

func NewBasicAuthHandler

func NewBasicAuthHandler(userMap map[string]string, handler http.Handler) BasicAuthHandler

func (BasicAuthHandler) ServeHTTP

func (handler BasicAuthHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)

type BindAddress

type BindAddress struct {
	Host    string // Either host name or an IP address (IPv4 or IPv6)
	Port    int
	IsHttps bool
}

type CommandEntry

type CommandEntry struct {
	Query    string
	ErrorMsg string
}

type Controller

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

func NewController

func NewController(db *Database) *Controller
func (c *Controller) GetLink() *Link

type Database

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

func NewDatabase

func NewDatabase(dbDir string) (*Database, error)

func (*Database) AddSession

func (db *Database) AddSession(projectId, duration, date uint64) error

func (*Database) AddTask

func (db *Database) AddTask(projectId uint64, title, description string, priority uint64) error

func (*Database) CreateProject

func (db *Database) CreateProject(title, description string, tags []uint64) (uint64, error)

func (*Database) CreateTag

func (db *Database) CreateTag(name string, color string) (uint64, error)

func (*Database) DeleteProject

func (db *Database) DeleteProject(id uint64) ([]uint64, error)

func (*Database) DeleteSession

func (db *Database) DeleteSession(id uint64) (uint64, error)

func (*Database) DeleteTag

func (db *Database) DeleteTag(id uint64) ([]uint64, error)

func (*Database) DeleteTask

func (db *Database) DeleteTask(id uint64) (uint64, error)

func (*Database) EditProject

func (db *Database) EditProject(
	id uint64,
	title, description string,
	tags []uint64) ([]uint64, error)

func (*Database) EditTag

func (db *Database) EditTag(id uint64, newName, newColor string) error

func (*Database) EditTask

func (db *Database) EditTask(id uint64, title, description string, priority uint64) (uint64, error)

func (*Database) GetAllTagIds

func (db *Database) GetAllTagIds() ([]uint64, error)

func (*Database) GetProjectById

func (db *Database) GetProjectById(id uint64) (Project, error)

func (*Database) GetProjectCompleteness

func (db *Database) GetProjectCompleteness(id uint64) (float32, error)

func (*Database) GetProjectIdsByTagId

func (db *Database) GetProjectIdsByTagId(id uint64) ([]uint64, error)

func (*Database) GetProjectSessions

func (db *Database) GetProjectSessions(projectId uint64) (SessionsInfo, error)

func (*Database) GetProjectTasks

func (db *Database) GetProjectTasks(id uint64) ([]Task, error)

func (*Database) GetProjectsByTag

func (db *Database) GetProjectsByTag(tagId uint64) ([]uint64, error)

func (*Database) GetSummaryById

func (db *Database) GetSummaryById(id uint64) (Summary, error)

func (*Database) GetSummaryList

func (db *Database) GetSummaryList() ([]Summary, error)

func (*Database) GetTagById

func (db *Database) GetTagById(id uint64) (Tag, error)

func (*Database) GetTagIdsByProjectId

func (db *Database) GetTagIdsByProjectId(id uint64) ([]uint64, error)

func (*Database) GetTagList

func (db *Database) GetTagList() ([]Tag, error)

func (*Database) ToggleTask

func (db *Database) ToggleTask(id uint64) (uint64, error)

type HttpsOpts

type HttpsOpts struct {
	Cert string // Certificate file (mandatory)
	Key  string // Key file (mandatory)
}
type Link struct {
	RequestChan  chan Request
	ResponseChan chan Response
	CloseChan    chan bool
}
func NewLink() *Link

func (*Link) Close

func (link *Link) Close()

type Project

type Project struct {
	Id            uint64    `json:"id"`
	Title         string    `json:"title"`
	Description   string    `json:"description"`
	Tags          []uint64  `json:"tags"`
	DurationTotal uint64    `json:"durationTotal"`
	DurationMonth uint64    `json:"durationMonth"`
	DurationWeek  uint64    `json:"durationWeek"`
	Completeness  float32   `json:"completeness"`
	Tasks         []Task    `json:"tasks"`
	Sessions      []Session `json:"sessions"`
}

type ProjectEditParams

type ProjectEditParams struct {
	Id          uint64   `json:"id"`
	Title       string   `json:"title"`
	Description string   `json:"description"`
	Tags        []uint64 `json:"tags"`
}

type ProjectNewParams

type ProjectNewParams struct {
	Name        string   `json:"name"`
	Tags        []uint64 `json:"tags"`
	Description string   `json:"description"`
}

type ReefOpts

type ReefOpts struct {
	Web     WebOpts     // Web server configuration
	Backend BackendOpts // Backend data store configuration
}

func NewReefOpts

func NewReefOpts() (opts *ReefOpts)

Create a ReefOpts object with default settings filled in

func (*ReefOpts) LoadYaml

func (opts *ReefOpts) LoadYaml(fileName string) error

Load the configuration data from a Yaml file

type Request

type Request struct {
	Id                  string            `json:"id"`
	Type                string            `json:"type"`
	Action              string            `json:"action"`
	TagNewParams        TagNewParams      `json:"tagNewParams"`
	TagDeleteParams     uint64            `json:"tagDeleteParams"`
	TagEditParams       TagEditParams     `json:"tagEditParams"`
	ProjectNewParams    ProjectNewParams  `json:"projectNewParams"`
	ProjectGetParams    uint64            `json:"projectGetParams"`
	ProjectDeleteParams uint64            `json:"projectDeleteParams"`
	ProjectEditParams   ProjectEditParams `json:"projectEditParams"`
	TaskNewParams       TaskNewParams     `json:"taskNewParams"`
	TaskDeleteParams    uint64            `json:"taskDeleteParams"`
	TaskToggleParams    uint64            `json:"taskToggleParams"`
	TaskEditParams      TaskEditParams    `json:"taskEditParams"`
	SessionNewParams    SessionNewParams  `json:"sessionNewParams"`
	SessionDeleteParams uint64            `json:"sessionDeleteParams"`
}

type Response

type Response struct {
	Type    string      `json:"type"`
	Payload interface{} `json:"payload"`
	Id      string      `json:"id"`
	Status  string      `json:"status"`
}

type Session

type Session struct {
	Id       uint64 `json:"id"`
	Duration uint64 `json:"duration"`
	Date     uint64 `json:"date"`
}

type SessionNewParams

type SessionNewParams struct {
	ProjectId uint64 `json:"projectId"`
	Duration  uint64 `json:"duration"`
	Date      uint64 `json:"date"`
}

type SessionsInfo

type SessionsInfo struct {
	DurationTotal uint64
	DurationMonth uint64
	DurationWeek  uint64
	Sessions      []Session
}

type Summary

type Summary struct {
	Id           uint64   `json:"id"`
	Title        string   `json:"title"`
	Tags         []uint64 `json:"tags"`
	Completeness float32  `json:"completeness"`
}

type Tag

type Tag struct {
	Id               uint64 `json:"id"`
	Name             string `json:"name"`
	Color            string `json:"color"`
	DurationTotal    uint64 `json:"durationTotal"`
	DurationMonth    uint64 `json:"durationMonth"`
	DurationWeek     uint64 `json:"durationWeek"`
	NumberOfProjects uint32 `json:"numProjects"`
}

type TagEditParams

type TagEditParams struct {
	Id       uint64 `json:"id"`
	NewName  string `json:"newName"`
	NewColor string `json:"newColor"`
}

type TagNewParams

type TagNewParams struct {
	Name  string `json:"name"`
	Color string `json:"color"`
}

type Task

type Task struct {
	Id          uint64 `json:"id"`
	ProjectId   uint64 `json:"projectId"`
	Title       string `json:"title"`
	Description string `json:"description"`
	Priority    uint8  `json:"priority"`
	Done        bool   `json:"done"`
}

type TaskEditParams

type TaskEditParams struct {
	TaskId      uint64 `json:"taskId"`
	Title       string `json:"title"`
	Description string `json:"description"`
	Priority    uint64 `json:"priority"`
}

type TaskNewParams

type TaskNewParams struct {
	ProjectId   uint64 `json:"projectId"`
	Title       string `json:"title"`
	Description string `json:"description"`
	Priority    uint64 `json:"priority"`
}

type WebOpts

type WebOpts struct {
	BindAddresses []BindAddress // List of addresses the server should bind to
	Https         HttpsOpts     // Https configuration
	EnableAuth    bool          // Enable basic HTTP auth
	HtpasswdFile  string        // path to the htpasswd file
}

type WebSocketHandler

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

func NewWebSocketHandler

func NewWebSocketHandler(db *Database) WebSocketHandler

func (WebSocketHandler) ServeHTTP

func (handler WebSocketHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)

Jump to

Keyboard shortcuts

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