CRecordUserDbUpdateUserRecord
This message is used to modify a user database record. The real name as well as the email address can be changed.
This message belongs to the Session Manager API.
The Session Manager is part of the NY_Session2PlugIn plugin.
{ "id": "342cea5a-bd26-47a6-9925-8fb51dabe66a", "name": "USER_DB_UPDATE_USER_RECORD ", "description": "Update user data.", "slots": [ { "key": "1", "name": "USER_ID", "direction": "REQUEST", "mandatory": "true", "type": "STRING", "description": "The user id." }, { "key": "2", "name": "REAL_NAME", "direction": "REQUEST", "mandatory": "true", "type": "STRING", "description": "The real name of the user." }, { "key": "3", "name": "EMAIL", "direction": "REQUEST", "mandatory": "true", "type": "STRING", "description": "The email of the user." }, { "key": "4", "name": "PICTURE", "direction": "REQUEST", "mandatory": "true", "type": "STRING", "description": "The picture of the user." } ] }
Usage
Sending the request
You need the microservice ID of the session manager:
public static final IIdSESSION_MICROSERVICE_ID = CIdFactory.fromObject("ccf168c1-f18b-4229-85f9-24461a19ee6a");
The UserId is needed to identify the record to be modified.
The own SessionToken is needed to verify the authorization for the change.
You need the permission NY_UpdateUser
.
Additionally, the changed data (real name, email) will be saved.
private void updateUserRecord(final byte[] aToken, @NotNull final String aUserId, @NotNull final String aRealName, @NotNull final String aEmail) throws CException { final CEnvelope env = CEnvelope.forMicroService(SESSION_MICROSERVICE_ID ); env.setSessionToken(aToken); final CRecord record =CRecordUserDbUpdateUserRecord .create();CRecordUserDbUpdateUserRecord .setUserId(record, aUserId);CRecordUserDbUpdateUserRecord .setRealName(record, aRealName);CRecordUserDbUpdateUserRecord .setEmail(record, aEmail); sendRequest(env, record); }
Dealing with the response
To catch the response of the request, we need a message handler. We add it in the constructor of the message handler registry.
// constructor: addMessageHandler(CRecordUserDbUpdateUserRecord .ID, this::asyncUpdateUserRecord );
private booleanasyncUpdateUserRecord (@NotNull final CEnvelope aEnvelope, @NotNull final CRecord aRecord) { if (aEnvelope.isAnswer()) { final int resultCode = aEnvelope.getResultCode(); if (resultCode == CResultCode.SUCCESS) { // ... } return true; } return false; }