PowerBuilder Dropbox: Dropbox Create Folder

Back to Index

Create a folder. Creates the folder /Halloween/emojis

Documentation: https://www.dropbox.com/developers/documentation/http/documentation#files-create_folder

CURL Command

curl -X POST https://api.dropboxapi.com/2/files/create_folder_v2 \
    --header "Authorization: Bearer DROPBOX-ACCESS-TOKEN" \
    --header "Content-Type: application/json" \
    --data "{\"path\": \"/Halloween/emojis\",\"autorename\": false}"

PowerBuilder Example

integer li_rc
oleobject loo_Rest
integer li_Success
integer li_BTls
integer li_Port
integer li_BAutoReconnect
oleobject loo_Json
oleobject loo_SbRequestBody
oleobject loo_SbResponseBody
integer li_RespStatusCode
oleobject loo_JsonResponse
integer i
integer li_Count_i
integer j
integer li_Count_j
string ls_MetadataName
string ls_MetadataId
string ls_MetadataPath_lower
string ls_MetadataPath_display
integer li_MetadataSharing_infoRead_only
string ls_MetadataSharing_infoParent_shared_folder_id
integer li_MetadataSharing_infoTraverse_only
integer li_MetadataSharing_infoNo_access
string ls_Template_id
string ls_Name
string ls_Value

loo_Rest = create oleobject
li_rc = loo_Rest.ConnectToNewObject("Chilkat_9_5_0.Rest")
if li_rc < 0 then
    destroy loo_Rest
    MessageBox("Error","Connecting to COM object failed")
    return
end if

//  URL: https://api.dropboxapi.com/2/files/create_folder_v2
li_BTls = 1
li_Port = 443
li_BAutoReconnect = 1
li_Success = loo_Rest.Connect("api.dropboxapi.com",li_Port,li_BTls,li_BAutoReconnect)
if li_Success <> 1 then
    Write-Debug "ConnectFailReason: " + string(loo_Rest.ConnectFailReason)
    Write-Debug loo_Rest.LastErrorText
    destroy loo_Rest
    return
end if

//  See the Online Tool for Generating JSON Creation Code
loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat_9_5_0.JsonObject")

loo_Json.UpdateString("path","/Halloween/emojis")
loo_Json.UpdateBool("autorename",0)

loo_Rest.AddHeader("Authorization","Bearer DROPBOX-ACCESS-TOKEN")
loo_Rest.AddHeader("Content-Type","application/json")

loo_SbRequestBody = create oleobject
li_rc = loo_SbRequestBody.ConnectToNewObject("Chilkat_9_5_0.StringBuilder")

loo_Json.EmitSb(loo_SbRequestBody)
loo_SbResponseBody = create oleobject
li_rc = loo_SbResponseBody.ConnectToNewObject("Chilkat_9_5_0.StringBuilder")

li_Success = loo_Rest.FullRequestSb("POST","/2/files/create_folder_v2",loo_SbRequestBody,loo_SbResponseBody)
if li_Success <> 1 then
    Write-Debug loo_Rest.LastErrorText
    destroy loo_Rest
    destroy loo_Json
    destroy loo_SbRequestBody
    destroy loo_SbResponseBody
    return
end if

li_RespStatusCode = loo_Rest.ResponseStatusCode
if li_RespStatusCode >= 400 then
    Write-Debug "Response Status Code = " + string(li_RespStatusCode)
    Write-Debug "Response Header:"
    Write-Debug loo_Rest.ResponseHeader
    Write-Debug "Response Body:"
    Write-Debug loo_SbResponseBody.GetAsString()
    destroy loo_Rest
    destroy loo_Json
    destroy loo_SbRequestBody
    destroy loo_SbResponseBody
    return
end if

loo_JsonResponse = create oleobject
li_rc = loo_JsonResponse.ConnectToNewObject("Chilkat_9_5_0.JsonObject")

loo_JsonResponse.LoadSb(loo_SbResponseBody)

//  See the Online Tool for Generating JSON Parse Code

ls_MetadataName = loo_JsonResponse.StringOf("metadata.name")
ls_MetadataId = loo_JsonResponse.StringOf("metadata.id")
ls_MetadataPath_lower = loo_JsonResponse.StringOf("metadata.path_lower")
ls_MetadataPath_display = loo_JsonResponse.StringOf("metadata.path_display")
li_MetadataSharing_infoRead_only = loo_JsonResponse.BoolOf("metadata.sharing_info.read_only")
ls_MetadataSharing_infoParent_shared_folder_id = loo_JsonResponse.StringOf("metadata.sharing_info.parent_shared_folder_id")
li_MetadataSharing_infoTraverse_only = loo_JsonResponse.BoolOf("metadata.sharing_info.traverse_only")
li_MetadataSharing_infoNo_access = loo_JsonResponse.BoolOf("metadata.sharing_info.no_access")
i = 0
li_Count_i = loo_JsonResponse.SizeOfArray("metadata.property_groups")
do while i < li_Count_i
    loo_JsonResponse.I = i
    ls_Template_id = loo_JsonResponse.StringOf("metadata.property_groups[i].template_id")
    j = 0
    li_Count_j = loo_JsonResponse.SizeOfArray("metadata.property_groups[i].fields")
    do while j < li_Count_j
        loo_JsonResponse.J = j
        ls_Name = loo_JsonResponse.StringOf("metadata.property_groups[i].fields[j].name")
        ls_Value = loo_JsonResponse.StringOf("metadata.property_groups[i].fields[j].value")
        j = j + 1
    loop
    i = i + 1
loop


destroy loo_Rest
destroy loo_Json
destroy loo_SbRequestBody
destroy loo_SbResponseBody
destroy loo_JsonResponse

Sample JSON Response Body

{
  "metadata": {
    "name": "emojis",
    "id": "id:a4ayc_80_OEAAAAAAAAAXz",
    "path_lower": "/halloween/emojis",
    "path_display": "/Halloween/emojis",
    "sharing_info": {
      "read_only": false,
      "parent_shared_folder_id": "84528192421",
      "traverse_only": false,
      "no_access": false
    },
    "property_groups": [
      {
        "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa",
        "fields": [
          {
            "name": "Security Policy",
            "value": "Confidential"
          }
        ]
      }
    ]
  }
}