func newClient(cmd *cobra.Command) wl.Client { var l logger.Logger if verbose { l = logger.NewLogger(logger.DEBUG) } else { l = logger.NewLogger(logger.INFO) } if accessToken == "" { accessToken = os.Getenv(accessTokenEnvVariable) } if accessToken == "" { l.Error( "exiting", errors.New("accessToken not found. Either provide the flag -"+accessTokenLongFlag+" or set the environment variable "+accessTokenEnvVariable)) os.Exit(2) } if clientID == "" { clientID = os.Getenv(clientIDEnvVariable) } if clientID == "" { l.Error( "exiting", errors.New("clientID not found. Either provide the flag -"+clientIDLongFlag+" or set the environment variable "+clientIDEnvVariable)) os.Exit(2) } return oauth.NewClient(accessToken, clientID, wl.APIURL, l) }
Context("when listID == 0", func() { BeforeEach(func() { listID = 0 }) It("returns an error", func() { _, err := client.TaskPositionsForListID(listID) Expect(err).To(HaveOccurred()) }) }) Context("when creating request fails with error", func() { BeforeEach(func() { client = oauth.NewClient("", "", "", testLogger) }) It("forwards the error", func() { _, err := client.TaskPositionsForListID(listID) Expect(err).To(HaveOccurred()) }) }) Context("when executing request fails with error", func() { BeforeEach(func() { client = oauth.NewClient("", "", "http://not-a-real-url.com", testLogger) }) It("forwards the error", func() {
func main() { client := wl_oauth.NewClient( os.Getenv("WL_ACCESS_TOKEN"), os.Getenv("WL_CLIENT_ID"), wl.APIURL, wl_logger.NewLogger(wl_logger.INFO), ) root, err := client.Root() if err != nil { log.Fatal(err) } myID := root.UserID lists, err := client.Lists() if err != nil { log.Fatal(err) } tasks, err := client.Tasks() if err != nil { log.Fatal(err) } filtered := []wl.Task{} for _, task := range tasks { // Remove completed tasks if task.Completed { continue } // Remove tasks assigned to someone else if task.AssigneeID != uint(0) && task.AssigneeID != myID { continue } // Include tasks assigned to me or starred if task.AssigneeID == myID || task.Starred { filtered = append(filtered, task) continue } // Include overdue tasks if !task.DueDate.IsZero() && time.Now().After(task.DueDate) { filtered = append(filtered, task) } } if len(filtered) == 0 { return } fmt.Printf("✅ %v\n", len(filtered)) var lastList uint for _, task := range filtered { // Print the list header if lastList != task.ListID { for _, list := range lists { if list.ID == task.ListID { fmt.Printf("\n%s\n\n", list.Title) lastList = list.ID break } } } var overdueString string if !task.DueDate.IsZero() && time.Now().After(task.DueDate) { overdueString = "⏰ " } var assignedString string if task.AssigneeID == myID { assignedString = "👤 " } var starString string if task.Starred { starString = "🌟 " } fmt.Printf( " %s%s%s%s\n", overdueString, assignedString, starString, task.Title, ) } fmt.Println() }
var ( client wl.Client server *ghttp.Server apiURL string testLogger logger.Logger ) func TestWL(t *testing.T) { RegisterFailHandler(Fail) RunSpecs(t, "WL Suite") } var _ = BeforeEach(func() { server = ghttp.NewServer() apiURL = server.URL() testLogger = logger.NewTestLogger(GinkgoWriter) client = oauth.NewClient( dummyAccessToken, dummyClientID, apiURL, testLogger, ) }) var _ = AfterEach(func() { server.Close() })
} if wlClientID == "" { Fail(fmt.Sprintf("Error - %s must be provided", wlClientIDEnvKey)) } By("Compiling binary") var err error wlBinPath, err = gexec.Build("github.com/robdimsdale/wl/cmd/wl", "-race") Expect(err).ShouldNot(HaveOccurred()) By("Creating client") testLogger := logger.NewTestLogger(GinkgoWriter) client = oauth.NewClient( wlAccessToken, wlClientID, apiURL, testLogger, ) By("Logging in") Eventually(func() error { _, err := client.User() return err }).Should(Succeed()) }) var _ = AfterSuite(func() { gexec.CleanupBuildArtifacts() })