FusionAuth устанавливает предпочитаемые языки с помощью клиента java - PullRequest
1 голос
/ 04 марта 2020

Я использую клиент fusionauth java в своем приложении для интеграции с fusionauth. Когда пользователь регистрируется, я хочу установить ему предпочтительный язык, чтобы отправить ему электронное письмо с подтверждением на желаемом языке. Пользовательский объект имеет поле preferredLanguages, помеченное как final, и в конструкторах нет возможности его установить. Как я могу это сделать?

1 Ответ

2 голосов
/ 05 марта 2020

Все доменные объекты FusionAuth открыты (т.е. не являются неизменяемыми). Вы можете использовать шаблон Builder с интерфейсом Buildable в клиенте FusionAuth Java, чтобы легко устанавливать значения.

Вот как может выглядеть некоторый код:

User u = new User().with(u -> u.preferredLanguages.add(Locale.English))
                   .with(u -> u.firstName = "Bob")
                   ...

Поскольку preferredLanguages является List<Locale>, вы также можете использовать addAll и любые другие List методы.

Хотя этот метод не гарантирует, что объект User будет полностью заполнен сразу после возврата конструктора, Java будет гарантировать, что переменная User u из моего примера будет полностью заполнена, потому что методы with все нужно вернуть до того, как выполнено левостороннее назначение.

...