コード例 #1
0
ファイル: wl.go プロジェクト: justincampbell/mylist
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)
}
コード例 #2
0
		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() {
コード例 #3
0
ファイル: main.go プロジェクト: justincampbell/mylist
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()
}
コード例 #4
0
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()
})
コード例 #5
0
	}

	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()
})