Documentation ¶
Index ¶
- Constants
- type BasicTransport
- type Durations
- type DurationsData
- type HeartbeatItem
- type Heartbeats
- type Range
- type Stats
- type StatsData
- type StatsEditor
- type StatsItem
- type StatsLanguage
- type StatsOperatingSystem
- type StatsProject
- type Summaries
- type SummariesData
- type SummaryEditor
- type SummaryGrandTotal
- type SummaryItem
- type SummaryLanguage
- type SummaryOperatingSystem
- type SummaryProject
- type SummaryRange
- type Time
- type UserData
- type Users
- type WakaTime
- func (wt *WakaTime) Durations(user string, date time.Time, project, branches *string) (*Durations, error)
- func (wt *WakaTime) GetHartbeats(user string, date time.Time) (*Heartbeats, error)
- func (wt *WakaTime) Stats(user string, rng Range, timeout *int, writesOnly *bool, project *string) (*Stats, error)
- func (wt *WakaTime) Summaries(user string, start, date time.Time, project, branches *string) (*Summaries, error)
- func (wt *WakaTime) Users(user string) (*Users, error)
Constants ¶
const ( Last7Days Range = "last_7_days" Last30Days = "last_30_days" Last6Months = "last_6_months" LastYear = "last_year" AllTime = "all_time" )
Stats report ranges
const APIBase = "https://wakatime.com/api/v1/"
APIBase is the root URL of the API
const CurrentUser = "current"
CurrentUser replaces the current user in the request
const Version = "0.1"
Version is the library version
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BasicTransport ¶
type BasicTransport struct { Transport http.RoundTripper // contains filtered or unexported fields }
BasicTransport implements http.RoundTripper and provides authentication using the Basic Auth mechanism
func NewBasicTransport ¶
func NewBasicTransport(apiKey string) *BasicTransport
NewBasicTransport creates new BasicTransport given the API key
type Durations ¶
type Durations struct { Branches []string Data []DurationsData End Time Start Time TimeZone string }
Durations is the structure returned by the durations request
type DurationsData ¶
DurationsData is single duration segment
type HeartbeatItem ¶
type HeartbeatItem struct { Entity string Type string Time float32 Project string Branch string Language string Dependencies string Lines int Lineno int Cursorpos int IsWrite bool `json:"is_write"` IsDebugging bool `json:"is_debugging"` }
HeartbeatItem contains single hartbeat item
type Heartbeats ¶
type Heartbeats struct { Data []HeartbeatItem Start Time End Time Timezone string }
Heartbeats contains the Heartbeats report
type StatsData ¶
type StatsData struct { CreatedAt time.Time `json:"created_at"` Editors []StatsEditor End Time HumanReadableDailyAverage string `json:"human_readable_daily_average"` HumanReadableTotal string `json:"human_readable_total"` ID string IsUpToDate bool `json:"is_up_to_date"` Languages []StatsLanguage ModifiedAt time.Time `json:"modified_at"` OperatingSystems []StatsOperatingSystem `json:"operating_systems"` Project *string Projects []StatsProject Range Range Start Time Status string Timeout int Timezone string TotalSeconds int `json:"total_seconds"` UserID string `json:"user_id"` Username string WritesOnly bool `json:"writes_only"` }
StatsData is the main data body in the stats report
type StatsEditor ¶
type StatsEditor StatsItem
StatsEditor represents editor data in the stats report
type StatsItem ¶
type StatsItem struct { CreatedAt time.Time `json:"created_at"` ID string ModifiedAt time.Time `json:"modified_at"` Name string Percent float32 TotalSeconds int `json:"total_seconds"` }
StatsItem is single item in the stats report
type StatsLanguage ¶
type StatsLanguage StatsItem
StatsLanguage represents language data in the stats report
type StatsOperatingSystem ¶
type StatsOperatingSystem StatsItem
StatsOperatingSystem represents operating system data in the stats report
type StatsProject ¶
type StatsProject StatsItem
StatsProject represents project data in the stats report
type Summaries ¶
type Summaries struct { Data []SummariesData End Time Start Time }
Summaries contains the whole summaries report
type SummariesData ¶
type SummariesData struct { Editors []SummaryEditor GrandTotal SummaryGrandTotal `json:"grand_total"` Languages []SummaryLanguage OperatingSystems []SummaryOperatingSystem `json:"operating_systems"` Projects []SummaryProject Range SummaryRange }
SummariesData contains summary data for single day
type SummaryEditor ¶
type SummaryEditor SummaryItem
SummaryEditor contains the summary information about editor
type SummaryGrandTotal ¶
type SummaryGrandTotal struct { Digital string Hours int Minutes int Seconds int Text string TotalSeconds int `json:"total_seconds"` }
SummaryGrandTotal contains the grand total summary
type SummaryItem ¶
type SummaryItem struct { Name string Percent float32 SummaryGrandTotal }
SummaryItem contains the summary item data
type SummaryLanguage ¶
type SummaryLanguage SummaryItem
SummaryLanguage contains the summary information about language
type SummaryOperatingSystem ¶
type SummaryOperatingSystem SummaryItem
SummaryOperatingSystem contains the summary information about operating system
type SummaryProject ¶
type SummaryProject SummaryItem
SummaryProject contains the summary information about project
type SummaryRange ¶
type SummaryRange struct { Date string DateHuman string `json:"date_human"` End Time Start Time Text string Timezone string }
SummaryRange contains information about the requested range
type Time ¶
Time is time.Time alias, used for parsing response timestamps
func (*Time) UnmarshalJSON ¶
UnmarshalJSON unmarshals the Time type
type UserData ¶
type UserData struct { Created time.Time Email string EmailPublic bool `json:"email_public"` FullName string `json:"full_name"` HumanReadableWebsite string `json:"human_readable_website"` ID string LastHeartbeat time.Time `json:"last_heartbeat"` LastPlugin string `json:"last_plugin"` LastPluginName string `json:"last_plugin_name"` LastProject string `json:"last_project"` Location string LoggedTimePublic bool `json:"logged_time_public"` Modified time.Time Photo string PhotoPublic bool `json:"photo_public"` Plan string Timezone string Username string Website string }
UserData contains the data for the user report
type WakaTime ¶
type WakaTime struct {
// contains filtered or unexported fields
}
WakaTime is the main structure
func (*WakaTime) Durations ¶
func (wt *WakaTime) Durations(user string, date time.Time, project, branches *string) (*Durations, error)
Durations fetches the durations report
func (*WakaTime) GetHartbeats ¶
GetHartbeats fetches user's heartbeats sent from plugins for the given day
func (*WakaTime) Stats ¶
func (wt *WakaTime) Stats(user string, rng Range, timeout *int, writesOnly *bool, project *string) (*Stats, error)
Stats fetches the stats report