Attribute VB_Name = "Todoist"
Dim pClient As WebClient
Public Property Get TodoistClient() As WebClient
    If pClient Is Nothing Then
        Set pClient = New WebClient
        pClient.BaseUrl = "https://todoist.com/api/v6/"
        
        Dim Auth As New TodoistAuthenticator
        Auth.Setup CStr(Credentials.Values("Todoist")("id")), CStr(Credentials.Values("Todoist")("secret")), CStr(Credentials.Values("Todoist")("redirect_url"))
        Auth.Scope = "data:read"
        Auth.Login
        
        Set pClient.Authenticator = Auth
    End If
    
    Set TodoistClient = pClient
End Property

Public Sub LoadProjects()
    ' See https://developer.todoist.com/#retrieve-data
    Dim Request As New WebRequest
    Request.Resource = "sync"
    Request.AddQuerystringParam "seq_no", 0
    Request.AddQuerystringParam "seq_no_global", 0
    Request.AddQuerystringParam "resource_types", "[""projects""]"
    
    Dim Response As WebResponse
    Set Response = TodoistClient.Execute(Request)
    
    If Response.StatusCode = WebStatusCode.Ok Then
        Debug.Print "Project Count: " & Response.Data("Projects").Count
    End If
End Sub