Sample code for 30+ languages & platforms
Xbase++

GeoOp - Mark a User as Deleted

See more GeoOp Examples

Mark one or more users as deleted.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oJsonToken
LOCAL oOauth2
LOCAL oRest
LOCAL nBAutoReconnect
LOCAL oJsonPostBody
LOCAL cResponseBody
LOCAL oJson

nSuccess := 0

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

//  This example also assumes an OAuth2 access token was previously fetched.
//  and saved in a JSON file.  

//  First get our previously obtained access token.
//  {"access_token":"e6dqdG....mzjpT04w==","token_type":"Bearer","expires_in":2592000,"owner_id":999236}
oJsonToken := CreateObject("Chilkat.JsonObject")
nSuccess := oJsonToken:LoadFile("qa_data/tokens/geoop.json")

//  This example assumes we previously obtained an access token
oOauth2 := CreateObject("Chilkat.OAuth2")
oOauth2:AccessToken := oJsonToken:StringOf("access_token")

oRest := CreateObject("Chilkat.Rest")

//  Connect to GeoOp..
//  Note: The same REST object, once connected, can be used for many requests.
//  The bAutoReconnect argument allows it to automatically reconnect as required for any subsequent request.

nBAutoReconnect := 1
nSuccess := oRest:Connect("api.geoop.com", 443, 1, nBAutoReconnect)
IF (nSuccess != 1)
    ? oRest:LastErrorText
    oJsonToken:destroy()
    oOauth2:destroy()
    oRest:destroy()
    RETURN
ENDIF

//  Provide the authentication credentials (i.e. the access token)
oRest:SetAuthOAuth2(oOauth2)

//  Set the X-Version header.
oRest:AddHeader("X-Version", "1.0")

//  We'll send a POST that looks like this:
//  
//  	PATCH /users HTTP/1.1
//  	Host: api.geoop.com
//  	Authorization: Bearer oJ_7Hj.f-F3f.kL
//  	Content-Type: application/json
//  	X-Version: 1.0
//  
//  	{
//  	    "users": [
//  	        {
//  	            "id": 115,
//  	            "deleted": true
//  	        },
//  	        {
//  	            "id": 116,
//  	            "deleted": true
//  	        }
//  	    ]
//  	}

oJsonPostBody := CreateObject("Chilkat.JsonObject")
oJsonPostBody:UpdateInt("users[0].id", 115)
oJsonPostBody:UpdateBool("users[0].deleted", 1)
oJsonPostBody:UpdateInt("users[1].id", 116)
oJsonPostBody:UpdateBool("users[1].deleted", 1)
//  Continue adding more users as needed..

//  Examine the JSON we're about to send...
oJsonPostBody:EmitCompact := 0
? oJsonPostBody:Emit()

oRest:AddHeader("Content-Type", "application/json")

oJsonPostBody:EmitCompact := 1
cResponseBody := oRest:FullRequestString("PATCH", "/users", oJsonPostBody:Emit())
IF (oRest:LastMethodSuccess != 1)
    ? oRest:LastErrorText
    oJsonToken:destroy()
    oOauth2:destroy()
    oRest:destroy()
    oJsonPostBody:destroy()
    RETURN
ENDIF

oJson := CreateObject("Chilkat.JsonObject")
oJson:EmitCompact := 0

//  If the response status code did not indicate success, then see what happened..
IF (oRest:ResponseStatusCode != 200)
    ? "Request Header: "
    ? oRest:LastRequestHeader
    ? "----"
    ? "Response StatusCode = " + Str(oRest:ResponseStatusCode)
    ? "Response StatusLine: " + oRest:ResponseStatusText
    ? "Response Header:"
    ? oRest:ResponseHeader
    oJson:Load(cResponseBody)
    ? oJson:Emit()

    //  If a user ID does not exist, we'll get an error response body that looks like this:

    //  		{
    //  		  "result": "failure",
    //  		  "failures": [
    //  		    {
    //  		      "rawData": {
    //  		        "id": 115,
    //  		        "deleted": true
    //  		      },
    //  		      "errors": [
    //  		        {
    //  		          "type": "client",
    //  		          "code": 1012,
    //  		          "message": "Item does not exist, or you do not have permission to access the item.",
    //  		          "description": "Make certain that you specified the correct item ID, and that you have permission to access the item."
    //  		        }
    //  		      ]
    //  		    }
    //  		  ],
    //  		  "metadata": {
    //  		    "receivedItemsCount": 1,
    //  		    "validItems": [
    //  		    ],
    //  		    "invalidItems": [
    //  		      0
    //  		    ]
    //  		  }
    //  		}
    //  

    oJsonToken:destroy()
    oOauth2:destroy()
    oRest:destroy()
    oJsonPostBody:destroy()
    oJson:destroy()
    RETURN

ENDIF

oJson:Load(cResponseBody)
//  Show the full JSON response..
? oJson:Emit()

//  The success JSON looks like this:

//  	{
//  	  "result": "success",
//  	  "users": [
//  	    {
//  	      "id": 984242,
//  	      "firstName": "John",
//  	      "lastName": "Doe",
//  	      "companyName": "Chilkat Software, inc.",
//  	      "email": "sales@chilkatsoft.com",
//  	      "phone": "",
//  	      "mobile": "2223334444",
//  	      "hourlyRate": 0,
//  	      "active": 1,
//  	      "deleted": true,
//  	      "colour": "#8162E7",
//  	      "created": "2016-10-26T17:52:30+00:00",
//  	      "modified": "2016-10-31T11:47:18+00:00",
//  	      "isAssignable": true,
//  	      "avatarUrl": "https:\/\/www.geoop.com\/images\/mobithumb_984242.jpg",
//  	      "role": {
//  	        "id": 3
//  	      },
//  	      "account": {
//  	        "id": 39409
//  	      },
//  	      "status": {
//  	        "message": "",
//  	        "timestamp": "2016-10-26T17:52:30+00:00"
//  	      }
//  	    }
//  	  ],
//  	  "metadata": {
//  	    "receivedItemsCount": 1,
//  	    "validItems": [
//  	      0
//  	    ],
//  	    "invalidItems": [
//  	    ]
//  	  }
//  	}
//

oJsonToken:destroy()
oOauth2:destroy()
oRest:destroy()
oJsonPostBody:destroy()
oJson:destroy()