Modifier les données du client
Comment suivre ce chapitre
Entrées : userId, un token autorisé à modifier ce client et les champs à changer.
Étapes et résultat attendu : Envoyez uniquement les modifications souhaitées. Une réponse réussie confirme la demande de mise à jour. Relisez le client si votre interface a besoin des valeurs actualisées.
Alternatives et actions ultérieures : Les données personnelles et l’adresse se modifient par des procédures distinctes. Utilisez celle qui correspond à la modification demandée.
Code source des DTO : CountryOutputModel
Les variables affectées dans un bloc précédent sont réutilisées dans les suivants. Les saisies du client proviennent de votre interface. Conservez les identifiants et les valeurs de référence dans le contexte du client ; ne recréez pas ce contexte à chaque étape.
Important
Modifier les données personnelles
Action : Envoyez le payload de mise à jour.
À conserver / résultat attendu : Traitez les erreurs de validation avant de mettre à jour l’interface.
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
// Assuming this is our client ID
// userId is the identifier returned by registration.
var clientUpdateInputModel = new
{
Name = name,
Surname = surname,
Email = email,
PhoneNumberPrefix = phoneNumberPrefix,
PhoneNumberNumber = phoneNumberNumber,
BirthDate = birthDate,
GenderId = genderId,
LanguageId = languageId,
Nationality1Id = nationalityId,
DeliverTaxStatement = deliverTaxStatement,
PensionSituationId = pensionSituationId
};
var clientUpdateInputModelAsString = JsonConvert.SerializeObject(clientUpdateInputModel);
using var clientUpdateContent = new MultipartFormDataContent();
clientUpdateContent.Add(new StringContent(clientUpdateInputModelAsString, Encoding.UTF8, "application/json"), "jsonPayload");
(await httpClient.PutAsync($"api/v1/users/user-id/{userId}", clientUpdateContent)).EnsureSuccessStatusCode();
// Assuming this is our client ID
// userId is the identifier returned by registration.
JsonObject clientChangeDataPayload = new JsonObject();
clientChangeDataPayload.addProperty("Name", name);
clientChangeDataPayload.addProperty("Surname", surname);
clientChangeDataPayload.addProperty("Email", email);
clientChangeDataPayload.addProperty("PhoneNumberPrefix", phoneNumberPrefix);
clientChangeDataPayload.addProperty("PhoneNumberNumber", phoneNumberNumber);
clientChangeDataPayload.addProperty("BirthDate", birthDate);
clientChangeDataPayload.addProperty("GenderId", genderId);
clientChangeDataPayload.addProperty("LanguageId", languageId);
clientChangeDataPayload.addProperty("Nationality1Id", nationalityId);
clientChangeDataPayload.addProperty("DeliverTaxStatement", deliverTaxStatement);
clientChangeDataPayload.addProperty("PensionSituationId", pensionSituationId);
MultiPartBodyPublisher multipartClientChangeOrderBody = new MultiPartBodyPublisher()
.addPart("jsonPayload", clientChangeDataPayload.toString());
// Add the required identification file as userIdentities when the API requires it.
HttpRequest clientDataChangeRequest = HttpRequest.newBuilder()
.timeout(Duration.ofMinutes(1))
.uri(Settings.wmsUri("users/user-id/" + userId))
.header("Accept-Language", "de-DE")
.header("Authorization", "Bearer " + accessToken)
.header("Content-Type", "multipart/form-data; boundary=" + multipartClientChangeOrderBody.getBoundary())
.PUT(multipartClientChangeOrderBody.build())
.build();
var response = httpClient.send(clientDataChangeRequest, BodyHandlers.ofString());
Api.requireSuccess(response);
Modifier l’adresse
Action : Envoyez la modification d’adresse.
À conserver / résultat attendu : Relisez le client si votre interface a besoin des valeurs mises à jour par le serveur.
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
var userAddressInputModel = new
{
Street = street,
StreetNr = streetNr,
City = city,
CountryId = countryId,
Zip = zip
};
// userId is the identifier returned by registration.
var userAddressInputModelAsString = JsonConvert.SerializeObject(userAddressInputModel);
(await httpClient.PutAsync($"api/v1/users/update-address/user-id/{userId}", new StringContent(userAddressInputModelAsString, Encoding.UTF8, "application/json"))).EnsureSuccessStatusCode();
HttpRequest countryRequest = HttpRequest.newBuilder()
.timeout(Duration.ofMinutes(1))
.uri(Settings.wmsUri("countries/code/FR"))
.header("Accept-Language", "de-DE")
.header("Authorization", "Bearer " + Settings.GUEST_TOKEN) // or CLIENT/ADMIN ACCESS TOKEN
.header("Content-Type", "application/json")
.build();
var response = httpClient.send(countryRequest, BodyHandlers.ofString());
Api.requireSuccess(response);
CountryOutputModel countryObj = new Gson().fromJson(response.body(), CountryOutputModel.class);
var countryId = countryObj.Id;
// Assuming this is our client ID
// userId is the identifier returned by registration.
JsonObject newAddressPayload = new JsonObject();
newAddressPayload.addProperty("Street", street);
newAddressPayload.addProperty("StreetNr", streetNr);
newAddressPayload.addProperty("City", city);
newAddressPayload.addProperty("CountryId", countryId);
newAddressPayload.addProperty("Zip", zip);
HttpRequest theRequest = HttpRequest.newBuilder()
.timeout(Duration.ofMinutes(1))
.uri(Settings.wmsUri("users/update-address/user-id/" + userId))
.header("Accept-Language", "de-DE")
.header("Authorization", "Bearer " + accessToken) // or CLIENT ACCESS TOKEN
.header("Content-Type", "application/json")
.PUT(HttpRequest.BodyPublishers.ofString(newAddressPayload.toString()))
.build();
response = httpClient.send(theRequest, BodyHandlers.ofString());
Api.requireSuccess(response);