Version: 7.2.x

Update an existing client

Update client#

To update an existing client record you will need to make a TLS request to the OpenHIM API for the below method and endpoint and supply the updated JSON object for the client record.

Method: PUT
Endpoint: {openhim_url}:8080/clients/:clientId
Payload: JSON object of the client record

Example#

Note: In the examples below, we are using the token authentication type to authenticate requests

Before we can send our request to the OpenHIM API we need to ensure that we construct our valid HTTP headers to successfully authenticate with the OpenHIM API.

Copy the below code at the bottom of your nodejs script that handles the authentication of the OpenHIM headers as described in the authentication section.

Replace the openhimOptions values with the correct implementation details and supply the SampleData payload to submit

// append below code to the "openhim-api.js" script containing the authentication methods.
// This is described within the authentication section
const genClientPassword = (password) => {
return new Promise((resolve) => {
const passwordSalt = crypto.randomBytes(16)
// create passhash
let shasum = crypto.createHash('sha512')
shasum.update(password)
shasum.update(passwordSalt.toString('hex'))
const passwordHash = shasum.digest('hex')
resolve({
"passwordSalt": passwordSalt.toString('hex'),
"passwordHash": passwordHash
})
})
}
(async () => {
const openhimOptions = {
apiURL: 'https://localhost:8080',
apiEndpoint: '/clients/clientId',
username: '[email protected]',
password: 'openhim-password',
rejectUnauthorized: false
}
const clientPassword = "client-password"
const clientPasswordDetails = await genClientPassword(clientPassword)
const SampleData = 'SampleData'
const headers = await genAuthHeaders(openhimOptions)
const options = {
method: 'PUT',
url: `${openhimOptions.apiURL}${openhimOptions.apiEndpoint}`,
rejectUnauthorized: openhimOptions.rejectUnauthorized,
headers: headers,
body: SampleData,
json: true
}
request(options, (error, response, body) => {
if (error) throw new Error(error)
console.log({
statusCode: response.statusCode,
body
})
})
})()

Execute the below command in your terminal to run the nodejs script

node openhim-api.js

The response status code will be 200 if successful.