Skip to content

Conversation

moust
Copy link
Contributor

@moust moust commented Apr 7, 2025

CA-4747

L'idéal serait que la clé d'un consentement soit en valeur d'une propriété "key" et non une clé de la structure Map utilisée.
Le mieux serait même que consents soit un array et non un map.
Mais bon, difficile de changer ça maintenant sans créer un breaking change pour les utilisateurs de l'api ou du sdk core...

@moust moust added the require review Reviews are required label Apr 7, 2025
@moust moust self-assigned this Apr 7, 2025
Comment on lines +138 to +154
/**
* @todo this can be removed when https://github.com/ReachFive/identity-web-core-sdk/pull/260 will be merged
* L'idéal serait que la clé d'un consentement soit en valeur d'une propriété "key" et non une clé de la structure Map utilisée.
* le mieux serait même que `consents` soit un array et non un map.
* Mais bon, difficile de changer ça maintenant sans créer un breaking change pour les utilisateurs de l'api ou du sdk core...
*/
.then(({ consents, ...profile }) => ({
...profile,
consents: consents
? Object.fromEntries(
Object.entries(consents).map(([key, value]) => [
key,
camelCaseProperties(value) as UserConsent
])
)
: undefined
}) as Profile) /** @todo check api response key format in sdk core */
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cette partie sert juste à palier au fait que le SDK Core format la réponse api en camelcase mais en faisant exception des concents et de toute la structure enfant.
J'ai fait une PR sur le SDK Core pour que seul la clé d'un consentement soit préservée en snakecase. Mais j'ai peur que ça introduise un breaking change pour d'éventuelles intégrations avec le SDK Core...

@@ -80,6 +83,7 @@ export default function consentField({
...props,
required,
defaultValue: { granted: props.defaultValue ?? false },
mapping: new PathMapping(snakeCasePath(props.path ?? props.key)), // Consent key should be snake_case
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Le coeur du problème. PathMapping sert à faire la mapping entre le modèles et les champs d'un formulaire. Par défaut ça fait une conversion camelcase du le nom des propriétés...
(les joies de l'usine à gaz que sont les formulaire sur le SDK UI...)

@moust moust merged commit 8eae7ba into master Apr 10, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
require review Reviews are required
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants