Sample code for 30+ languages & platforms
Visual FoxPro

DocuSign List Folders

See more DocuSign Examples

Retrieves a list of the folders for the account, including the folder hierarchy. You can specify type kinds of folders to return with the include query parameter.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loHttp
LOCAL loJsonToken
LOCAL loSbResponseBody
LOCAL loJResp
LOCAL lnRespStatusCode
LOCAL lcName
LOCAL lcV_type
LOCAL lcOwnerUserName
LOCAL lcOwnerUserId
LOCAL lcOwnerEmail
LOCAL lcFolderId
LOCAL lcUri
LOCAL lcItemCount
LOCAL lcSubFolderCount
LOCAL lcHasSubFolders
LOCAL lcResultSetSize
LOCAL lcStartPosition
LOCAL lcEndPosition
LOCAL lcTotalSetSize
LOCAL i
LOCAL lnCount_i

lnSuccess = 0

* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loHttp = CreateObject('Chilkat.Http')

* Implements the following HTTP request:
* GET /restapi/v2.1/accounts/{accountId}/folders

* Adds the "Authorization: Bearer eyJ0eXAi.....UE8Kl_V8KroQ" header.
loJsonToken = CreateObject('Chilkat.JsonObject')
* Load a previously obtained OAuth2 access token.
lnSuccess = loJsonToken.LoadFile("qa_data/tokens/docusign.json")
IF (lnSuccess = 0) THEN
    ? loJsonToken.LastErrorText
    RELEASE loHttp
    RELEASE loJsonToken
    CANCEL
ENDIF

loHttp.AuthToken = loJsonToken.StringOf("access_token")

* Use your account ID here:
loHttp.SetUrlVar("accountId","7f3f65ed-5e87-418d-94c1-92499ddc8252")

loSbResponseBody = CreateObject('Chilkat.StringBuilder')
lnSuccess = loHttp.QuickGetSb("https://demo.docusign.net/restapi/v2.1/accounts/{$accountId}/folders",loSbResponseBody)
IF (lnSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loJsonToken
    RELEASE loSbResponseBody
    CANCEL
ENDIF

loJResp = CreateObject('Chilkat.JsonObject')
loJResp.LoadSb(loSbResponseBody)
loJResp.EmitCompact = 0

? "Response Body:"
? loJResp.Emit()

lnRespStatusCode = loHttp.LastStatus
? "Response Status Code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode >= 400) THEN
    ? "Response Header:"
    ? loHttp.LastHeader
    ? "Failed."
    RELEASE loHttp
    RELEASE loJsonToken
    RELEASE loSbResponseBody
    RELEASE loJResp
    CANCEL
ENDIF

* Sample JSON response:
* (Sample code for parsing the JSON response is shown below)

* {
*   "resultSetSize": "4",
*   "startPosition": "0",
*   "endPosition": "3",
*   "totalSetSize": "4",
*   "folders": [
*     {
*       "name": "Draft",
*       "type": "draft",
*       "owner": {
*         "userName": "Joe Sample",
*         "userId": "14602117-2430-4582-8a49-ba8766302272",
*         "email": "admin@chilkatsoft.com"
*       },
*       "folderId": "f0bc5174-610d-4d80-80d7-91037843ccdb",
*       "uri": "/folders/f0bc5174-610d-4d80-80d7-91037843ccdb",
*       "itemCount": "0",
*       "subFolderCount": "0",
*       "hasSubFolders": "false"
*     },
*     {
*       "name": "Inbox",
*       "type": "inbox",
*       "owner": {
*         "userName": "Joe Sample",
*         "userId": "14602117-2430-4582-8a49-ba8766302272",
*         "email": "admin@chilkatsoft.com"
*       },
*       "folderId": "06c97346-f7b4-46fd-a204-038287d655ec",
*       "uri": "/folders/06c97346-f7b4-46fd-a204-038287d655ec",
*       "itemCount": "1",
*       "subFolderCount": "0",
*       "hasSubFolders": "false"
*     },
*     {
*       "name": "Deleted Items",
*       "type": "recyclebin",
*       "owner": {
*         "userName": "Joe Sample",
*         "userId": "14602117-2430-4582-8a49-ba8766302272",
*         "email": "admin@chilkatsoft.com"
*       },
*       "folderId": "6df0919e-b152-49fc-a4c9-9b430a29d4f5",
*       "uri": "/folders/6df0919e-b152-49fc-a4c9-9b430a29d4f5",
*       "itemCount": "0",
*       "subFolderCount": "0",
*       "hasSubFolders": "false"
*     },
*     {
*       "name": "Sent Items",
*       "type": "sentitems",
*       "owner": {
*         "userName": "Joe Sample",
*         "userId": "14602117-2430-4582-8a49-ba8766302272",
*         "email": "admin@chilkatsoft.com"
*       },
*       "folderId": "456f3c76-b265-4453-a024-c39b1a5cb387",
*       "uri": "/folders/456f3c76-b265-4453-a024-c39b1a5cb387",
*       "itemCount": "1",
*       "subFolderCount": "0",
*       "hasSubFolders": "false"
*     }
*   ]
* }

* Sample code for parsing the JSON response...
* Use the following online tool to generate parsing code from sample JSON:
* Generate Parsing Code from JSON

lcResultSetSize = loJResp.StringOf("resultSetSize")
lcStartPosition = loJResp.StringOf("startPosition")
lcEndPosition = loJResp.StringOf("endPosition")
lcTotalSetSize = loJResp.StringOf("totalSetSize")
i = 0
lnCount_i = loJResp.SizeOfArray("folders")
DO WHILE i < lnCount_i
    loJResp.I = i
    lcName = loJResp.StringOf("folders[i].name")
    lcV_type = loJResp.StringOf("folders[i].type")
    lcOwnerUserName = loJResp.StringOf("folders[i].owner.userName")
    lcOwnerUserId = loJResp.StringOf("folders[i].owner.userId")
    lcOwnerEmail = loJResp.StringOf("folders[i].owner.email")
    lcFolderId = loJResp.StringOf("folders[i].folderId")
    lcUri = loJResp.StringOf("folders[i].uri")
    lcItemCount = loJResp.StringOf("folders[i].itemCount")
    lcSubFolderCount = loJResp.StringOf("folders[i].subFolderCount")
    lcHasSubFolders = loJResp.StringOf("folders[i].hasSubFolders")
    i = i + 1
ENDDO

RELEASE loHttp
RELEASE loJsonToken
RELEASE loSbResponseBody
RELEASE loJResp