Передать параметр в REST controller

164
01 ноября 2018, 04:30

Столкнулся с задачей в вебприложении - при смене email у юзера необходимо запросить пароль. С написанием бэкенда проблем нет (пишу на java), с ангуляром пока плаваю. Метод изначально принимал только email.

Добавил в метод var passConfirm = vm.passwordConfirmEmail; В следующей строках где console.log мыло и пароль отображается.

Вызываю свой рест UserExt.updateEmail.query...

function saveEmail() {
        var mod = vm.emailMod;
        var passConfirm = vm.passwordConfirmEmail;
        console.log(mod);
        console.log(passConfirm);
        UserExt.updateEmail.query(mod, function (res) {
            console.log("------query updateEmail-------");
            if (!res || !res.code) {
                $scope.toastr.error('error.occured');
                return;
            }
            var code = res.code;
            console.log(code);
            if (code === 'INCORRECT_EMAIL') {
                $scope.toastr.error('error.incorrect-email');
            } if (code === 'INCORRECT_EMAIL_OR_PASS') {
                $scope.toastr.error('error.incorrect-email-or-password');
            }
            else if (code === 'EMAIL_EXISTS') {
                $scope.toastr.error('msg.email-exists');
            } else if (code === 'EMAIL_CHANGED') {
                $scope.toastr.success('msg.email-changed');
            } else {
                $scope.toastr.error('error.occured');
            }
        }, function () {
            console.log("fail***********************");
            $scope.toastr.error('error.occured');
        });
    }

REST

@RequestMapping(value = "/users-ext/updateEmail",
    method = RequestMethod.POST,
    produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public ResponseEntity<CodeDto> updateEmail(@RequestBody User user) throws URISyntaxException {

.....

Изначально в параметр принимал @RequestBody String email

Как в ангулар-функцию определить параметр passConfirm что бы его передать дальше в REST Controller? Сейчас приходит null, уверен что лажа в "моем" ангуляре

Answer 1

ответ был довольно как оказалось прост, необходимо было создать переменную юзера и в точности отобразить поля обьекта:

function saveEmail() {
        var user = {
            'email':vm.emailMod,
            'password':vm.passwordConfirmEmail
        };
        UserExt.updateEmail.query(user, function (res) {
        .....
        .....
READ ALSO
Как указать Hibernate путь к properties

Как указать Hibernate путь к properties

Пишу с учебной целью web приложение на javaНастраиваю hibernate с помощью Spring в context

150
Отправка файла Android Retrofit

Отправка файла Android Retrofit

Пытаюсь научиться отправлять картинку (и рядом еще json) на сервер но никак не получаетьсяВот код интерфейса:

154
Оптимизация кода работы с Таблицей Гугл

Оптимизация кода работы с Таблицей Гугл

Имеются 10 листов, в которых происходит то самое действие

135
Ошибка 400 при использовании Ajax в Safari

Ошибка 400 при использовании Ajax в Safari

У меня есть JS код, где написан Ajax-запрос к серверу:

166