diff --git a/bamboohr/client.go b/bamboohr/client.go index 03c7ef65..8e932366 100644 --- a/bamboohr/client.go +++ b/bamboohr/client.go @@ -28,7 +28,11 @@ func NewClient() *Client { // Away returns a string representation of the people who are out of the office during the defined period func (client *Client) Away(itemType, startDate, endDate string) []Item { - calendar, _ := client.away(startDate, endDate) + calendar, err := client.away(startDate, endDate) + if err != nil { + return []Item{} + } + items := calendar.ItemsByType(itemType) return items @@ -49,6 +53,9 @@ func (client *Client) away(startDate, endDate string) (cal Calendar, err error) ) data, err := Request(client.apiKey, apiURL) + if err != nil { + return cal, err + } err = xml.Unmarshal(data, &cal) return diff --git a/bamboohr/request.go b/bamboohr/request.go index 96d64574..b46faac0 100644 --- a/bamboohr/request.go +++ b/bamboohr/request.go @@ -16,13 +16,13 @@ func Request(apiKey string, apiURL string) ([]byte, error) { client := &http.Client{} resp, err := client.Do(req) if err != nil { - panic(err) + return nil, err } defer resp.Body.Close() data, err := ParseBody(resp) if err != nil { - panic(err) + return nil, err } return data, err diff --git a/bamboohr/widget.go b/bamboohr/widget.go index 041550f3..205e2334 100644 --- a/bamboohr/widget.go +++ b/bamboohr/widget.go @@ -5,20 +5,21 @@ import ( "time" "github.com/rivo/tview" + "github.com/senorprogrammer/wtf/wtf" ) type Widget struct { - Name string - RefreshedAt time.Time - RefreshInterval int - View *tview.TextView + wtf.BaseWidget + View *tview.TextView } func NewWidget() *Widget { widget := Widget{ - Name: "BambooHR", - RefreshedAt: time.Now(), - RefreshInterval: 3600, + BaseWidget: wtf.BaseWidget{ + Name: "BambooHR", + RefreshedAt: time.Now(), + RefreshInterval: 3600, + }, } widget.addView() diff --git a/gcal/widget.go b/gcal/widget.go index 5977c82b..1cffb5af 100644 --- a/gcal/widget.go +++ b/gcal/widget.go @@ -6,21 +6,22 @@ import ( "time" "github.com/rivo/tview" + "github.com/senorprogrammer/wtf/wtf" "google.golang.org/api/calendar/v3" ) type Widget struct { - Name string - RefreshedAt time.Time - RefreshInterval int - View *tview.TextView + wtf.BaseWidget + View *tview.TextView } func NewWidget() *Widget { widget := Widget{ - Name: "Calendar", - RefreshedAt: time.Now(), - RefreshInterval: 60, + BaseWidget: wtf.BaseWidget{ + Name: "Calendar", + RefreshedAt: time.Now(), + RefreshInterval: 60, + }, } widget.addView() diff --git a/weather/widget.go b/weather/widget.go index 8318d0b8..66525667 100644 --- a/weather/widget.go +++ b/weather/widget.go @@ -7,18 +7,21 @@ import ( owm "github.com/briandowns/openweathermap" "github.com/rivo/tview" + "github.com/senorprogrammer/wtf/wtf" ) type Widget struct { - RefreshedAt time.Time - RefreshInterval int - View *tview.TextView + wtf.BaseWidget + View *tview.TextView } func NewWidget() *Widget { widget := Widget{ - RefreshedAt: time.Now(), - RefreshInterval: 600, + BaseWidget: wtf.BaseWidget{ + Name: "Weather", + RefreshedAt: time.Now(), + RefreshInterval: 600, + }, } widget.addView() @@ -110,6 +113,8 @@ func icon(data *owm.CurrentWeatherData) string { icon = "🌥" case "partly cloudy": icon = "🌤" + case "scattered clouds": + icon = "☁️" case "snow": icon = "❄️" case "sunny":