Chilkat Online Tools

Foxpro / Atlassian Confluence Cloud / Create audit record

Back to Collection Items

LOCAL loHttp
LOCAL lnSuccess
LOCAL loJson
LOCAL loResp
LOCAL loSbResponseBody
LOCAL loJResp
LOCAL lnRespStatusCode
LOCAL lcName
LOCAL lcOldValue
LOCAL lcNewValue
LOCAL lcObjectType
LOCAL lcV_Type
LOCAL lcDisplayName
LOCAL lcOperations
LOCAL lcUsername
LOCAL lcUserKey
LOCAL lcRemoteAddress
LOCAL lnCreationDate
LOCAL lcSummary
LOCAL lcDescription
LOCAL lcCategory
LOCAL lnSysAdmin
LOCAL lcName
LOCAL lcObjectType
LOCAL i
LOCAL lnCount_i

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

loHttp = CreateObject('Chilkat_9_5_0.Http')

* Use this online tool to generate code from sample JSON: Generate Code to Create JSON

* The following JSON is sent in the request body.

* {
*   "remoteAddress": "<string>",
*   "author": {
*     "type": "user",
*     "displayName": "<string>",
*     "operations": "<object>",
*     "username": "<string>",
*     "userKey": "<string>"
*   },
*   "creationDate": "<long>",
*   "summary": "<string>",
*   "description": "<string>",
*   "category": "<string>",
*   "sysAdmin": false,
*   "affectedObject": {
*     "name": "amet dolore",
*     "objectType": "labore tempor veniam officia"
*   },
*   "changedValues": [
*     {
*       "name": "voluptate sit sed sint ",
*       "oldValue": "proident nisi",
*       "newValue": "dolore aute cupidatat enim"
*     },
*     {
*       "name": "in eu",
*       "oldValue": "enim laborum tempor Lorem",
*       "newValue": "ipsum ex velit"
*     }
*   ],
*   "associatedObjects": [
*     {
*       "name": "qui",
*       "objectType": "ipsum"
*     },
*     {
*       "name": "nostrud consectetur",
*       "objectType": "sit dolore enim Ut"
*     }
*   ]
* }

loJson = CreateObject('Chilkat_9_5_0.JsonObject')
loJson.UpdateString("remoteAddress","<string>")
loJson.UpdateString("author.type","user")
loJson.UpdateString("author.displayName","<string>")
loJson.UpdateString("author.operations","<object>")
loJson.UpdateString("author.username","<string>")
loJson.UpdateString("author.userKey","<string>")
loJson.UpdateString("creationDate","<long>")
loJson.UpdateString("summary","<string>")
loJson.UpdateString("description","<string>")
loJson.UpdateString("category","<string>")
loJson.UpdateBool("sysAdmin",0)
loJson.UpdateString("affectedObject.name","amet dolore")
loJson.UpdateString("affectedObject.objectType","labore tempor veniam officia")
loJson.UpdateString("changedValues[0].name","voluptate sit sed sint ")
loJson.UpdateString("changedValues[0].oldValue","proident nisi")
loJson.UpdateString("changedValues[0].newValue","dolore aute cupidatat enim")
loJson.UpdateString("changedValues[1].name","in eu")
loJson.UpdateString("changedValues[1].oldValue","enim laborum tempor Lorem")
loJson.UpdateString("changedValues[1].newValue","ipsum ex velit")
loJson.UpdateString("associatedObjects[0].name","qui")
loJson.UpdateString("associatedObjects[0].objectType","ipsum")
loJson.UpdateString("associatedObjects[1].name","nostrud consectetur")
loJson.UpdateString("associatedObjects[1].objectType","sit dolore enim Ut")

loHttp.SetRequestHeader("Content-Type","application/json")

loResp = loHttp.PostJson3("https://your-domain.atlassian.net/wiki/rest/api/audit","application/json",loJson)
IF (loHttp.LastMethodSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loJson
    CANCEL
ENDIF

loSbResponseBody = CreateObject('Chilkat_9_5_0.StringBuilder')
loResp.GetBodySb(loSbResponseBody)

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

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

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

RELEASE loResp

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

* {
*   "author": {
*     "type": "user",
*     "displayName": "dolore do consectetur veniam",
*     "operations": null,
*     "username": "adipisicing nostrud ullamco",
*     "userKey": "eu in"
*   },
*   "remoteAddress": "ea Duis minim p",
*   "creationDate": -62196571,
*   "summary": "laboris",
*   "description": "dolor est sed non officia",
*   "category": "eiusmod ut nulla",
*   "sysAdmin": false,
*   "affectedObject": {
*     "name": "sint eu labore magna fugiat",
*     "objectType": "ut exercitation"
*   },
*   "changedValues": [
*     {
*       "name": "ut ea occaecat ex cupidatat",
*       "oldValue": "ipsum minim Duis",
*       "newValue": "esse cupidatat ad"
*     },
*     {
*       "name": "fugiat est enim deserunt commodo",
*       "oldValue": "quis ipsum",
*       "newValue": "occaecat Lorem"
*     }
*   ],
*   "associatedObjects": [
*     {
*       "name": "in es",
*       "objectType": "ut reprehenderit mollit exercitation"
*     },
*     {
*       "name": "velit culpa eiusmod",
*       "objectType": "tempor"
*     }
*   ]
* }

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

lcV_Type = loJResp.StringOf("author.type")
lcDisplayName = loJResp.StringOf("author.displayName")
lcOperations = loJResp.StringOf("author.operations")
lcUsername = loJResp.StringOf("author.username")
lcUserKey = loJResp.StringOf("author.userKey")
lcRemoteAddress = loJResp.StringOf("remoteAddress")
lnCreationDate = loJResp.IntOf("creationDate")
lcSummary = loJResp.StringOf("summary")
lcDescription = loJResp.StringOf("description")
lcCategory = loJResp.StringOf("category")
lnSysAdmin = loJResp.BoolOf("sysAdmin")
lcName = loJResp.StringOf("affectedObject.name")
lcObjectType = loJResp.StringOf("affectedObject.objectType")
i = 0
lnCount_i = loJResp.SizeOfArray("changedValues")
DO WHILE i < lnCount_i
    loJResp.I = i
    lcName = loJResp.StringOf("changedValues[i].name")
    lcOldValue = loJResp.StringOf("changedValues[i].oldValue")
    lcNewValue = loJResp.StringOf("changedValues[i].newValue")
    i = i + 1
ENDDO
i = 0
lnCount_i = loJResp.SizeOfArray("associatedObjects")
DO WHILE i < lnCount_i
    loJResp.I = i
    lcName = loJResp.StringOf("associatedObjects[i].name")
    lcObjectType = loJResp.StringOf("associatedObjects[i].objectType")
    i = i + 1
ENDDO

RELEASE loHttp
RELEASE loJson
RELEASE loSbResponseBody
RELEASE loJResp

Curl Command

curl -X POST
	-H "Content-Type: application/json"
	-d '{
    "remoteAddress": "<string>",
    "author": {
        "type": "user",
        "displayName": "<string>",
        "operations": "<object>",
        "username": "<string>",
        "userKey": "<string>"
    },
    "creationDate": "<long>",
    "summary": "<string>",
    "description": "<string>",
    "category": "<string>",
    "sysAdmin": false,
    "affectedObject": {
        "name": "amet dolore",
        "objectType": "labore tempor veniam officia"
    },
    "changedValues": [
        {
            "name": "voluptate sit sed sint ",
            "oldValue": "proident nisi",
            "newValue": "dolore aute cupidatat enim"
        },
        {
            "name": "in eu",
            "oldValue": "enim laborum tempor Lorem",
            "newValue": "ipsum ex velit"
        }
    ],
    "associatedObjects": [
        {
            "name": "qui",
            "objectType": "ipsum"
        },
        {
            "name": "nostrud consectetur",
            "objectType": "sit dolore enim Ut"
        }
    ]
}'
https://your-domain.atlassian.net/wiki/rest/api/audit

Postman Collection Item JSON

{
  "name": "Create audit record",
  "request": {
    "method": "POST",
    "header": [
      {
        "key": "Content-Type",
        "value": "application/json"
      }
    ],
    "body": {
      "mode": "raw",
      "raw": "{\n    \"remoteAddress\": \"<string>\",\n    \"author\": {\n        \"type\": \"user\",\n        \"displayName\": \"<string>\",\n        \"operations\": \"<object>\",\n        \"username\": \"<string>\",\n        \"userKey\": \"<string>\"\n    },\n    \"creationDate\": \"<long>\",\n    \"summary\": \"<string>\",\n    \"description\": \"<string>\",\n    \"category\": \"<string>\",\n    \"sysAdmin\": false,\n    \"affectedObject\": {\n        \"name\": \"amet dolore\",\n        \"objectType\": \"labore tempor veniam officia\"\n    },\n    \"changedValues\": [\n        {\n            \"name\": \"voluptate sit sed sint \",\n            \"oldValue\": \"proident nisi\",\n            \"newValue\": \"dolore aute cupidatat enim\"\n        },\n        {\n            \"name\": \"in eu\",\n            \"oldValue\": \"enim laborum tempor Lorem\",\n            \"newValue\": \"ipsum ex velit\"\n        }\n    ],\n    \"associatedObjects\": [\n        {\n            \"name\": \"qui\",\n            \"objectType\": \"ipsum\"\n        },\n        {\n            \"name\": \"nostrud consectetur\",\n            \"objectType\": \"sit dolore enim Ut\"\n        }\n    ]\n}"
    },
    "url": {
      "raw": "{{baseUrl}}/api/audit",
      "host": [
        "{{baseUrl}}"
      ],
      "path": [
        "api",
        "audit"
      ]
    },
    "description": "Creates a record in the audit log.\n\n**[Permissions](https://confluence.atlassian.com/x/_AozKw) required**:\n'Confluence Administrator' global permission."
  },
  "response": [
    {
      "name": "Returned if the record is created in the audit log.",
      "originalRequest": {
        "method": "POST",
        "header": [
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n    \"remoteAddress\": \"<string>\",\n    \"author\": {\n        \"type\": \"user\",\n        \"displayName\": \"<string>\",\n        \"operations\": \"<object>\",\n        \"username\": \"<string>\",\n        \"userKey\": \"<string>\"\n    },\n    \"creationDate\": \"<long>\",\n    \"summary\": \"<string>\",\n    \"description\": \"<string>\",\n    \"category\": \"<string>\",\n    \"sysAdmin\": false,\n    \"affectedObject\": {\n        \"name\": \"ut Lorem reprehenderit dolore tempor\",\n        \"objectType\": \"magna consectetur\"\n    },\n    \"changedValues\": [\n        {\n            \"name\": \"in\",\n            \"oldValue\": \"nisi cillum eiusmod exercitation\",\n            \"newValue\": \"in nulla adipisicing ni\"\n        },\n        {\n            \"name\": \"esse ea\",\n            \"oldValue\": \"mollit elit laborum\",\n            \"newValue\": \"sint ut nisi elit\"\n        }\n    ],\n    \"associatedObjects\": [\n        {\n            \"name\": \"veniam qui\",\n            \"objectType\": \"magna laborum mollit\"\n        },\n        {\n            \"name\": \"sit tempor ad id adipisicing\",\n            \"objectType\": \"reprehenderit Duis est ex commodo\"\n        }\n    ]\n}"
        },
        "url": {
          "raw": "{{baseUrl}}/api/audit",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "audit"
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n \"author\": {\n  \"type\": \"user\",\n  \"displayName\": \"dolore do consectetur veniam\",\n  \"operations\": null,\n  \"username\": \"adipisicing nostrud ullamco\",\n  \"userKey\": \"eu in\"\n },\n \"remoteAddress\": \"ea Duis minim p\",\n \"creationDate\": -62196571,\n \"summary\": \"laboris\",\n \"description\": \"dolor est sed non officia\",\n \"category\": \"eiusmod ut nulla\",\n \"sysAdmin\": false,\n \"affectedObject\": {\n  \"name\": \"sint eu labore magna fugiat\",\n  \"objectType\": \"ut exercitation\"\n },\n \"changedValues\": [\n  {\n   \"name\": \"ut ea occaecat ex cupidatat\",\n   \"oldValue\": \"ipsum minim Duis\",\n   \"newValue\": \"esse cupidatat ad\"\n  },\n  {\n   \"name\": \"fugiat est enim deserunt commodo\",\n   \"oldValue\": \"quis ipsum\",\n   \"newValue\": \"occaecat Lorem\"\n  }\n ],\n \"associatedObjects\": [\n  {\n   \"name\": \"in es\",\n   \"objectType\": \"ut reprehenderit mollit exercitation\"\n  },\n  {\n   \"name\": \"velit culpa eiusmod\",\n   \"objectType\": \"tempor\"\n  }\n ]\n}"
    },
    {
      "name": "Returned if the `remoteAddress` property is not specified.",
      "originalRequest": {
        "method": "POST",
        "header": [
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n    \"remoteAddress\": \"<string>\",\n    \"author\": {\n        \"type\": \"user\",\n        \"displayName\": \"<string>\",\n        \"operations\": \"<object>\",\n        \"username\": \"<string>\",\n        \"userKey\": \"<string>\"\n    },\n    \"creationDate\": \"<long>\",\n    \"summary\": \"<string>\",\n    \"description\": \"<string>\",\n    \"category\": \"<string>\",\n    \"sysAdmin\": false,\n    \"affectedObject\": {\n        \"name\": \"ut Lorem reprehenderit dolore tempor\",\n        \"objectType\": \"magna consectetur\"\n    },\n    \"changedValues\": [\n        {\n            \"name\": \"in\",\n            \"oldValue\": \"nisi cillum eiusmod exercitation\",\n            \"newValue\": \"in nulla adipisicing ni\"\n        },\n        {\n            \"name\": \"esse ea\",\n            \"oldValue\": \"mollit elit laborum\",\n            \"newValue\": \"sint ut nisi elit\"\n        }\n    ],\n    \"associatedObjects\": [\n        {\n            \"name\": \"veniam qui\",\n            \"objectType\": \"magna laborum mollit\"\n        },\n        {\n            \"name\": \"sit tempor ad id adipisicing\",\n            \"objectType\": \"reprehenderit Duis est ex commodo\"\n        }\n    ]\n}"
        },
        "url": {
          "raw": "{{baseUrl}}/api/audit",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "audit"
          ]
        }
      },
      "status": "Bad Request",
      "code": 400,
      "_postman_previewlanguage": "text",
      "header": [
        {
          "key": "Content-Type",
          "value": "text/plain"
        }
      ],
      "cookie": [
      ],
      "body": ""
    }
  ]
}