Как создать метод PUT для обновления пользователя - PullRequest
0 голосов
/ 25 июня 2019

Попытка обновить пользователя в моей базе данных с моего сайта.Ниже вы можете увидеть код, который я использовал для получения данных из моей базы данных и который работает правильно, но я не могу обновить данные в базе данных из полей ввода html.component (MySQL)

settings.component.ts

export class SettingsComponent implements OnInit {

  settings = {
    username: '',
    email: '',
    password: ''
  };

  constructor(private http: HttpClient) { }

  baseUrl = 'http://localhost:8080/aquadine-jee/resources/user';

  ngOnInit() {
    //Get data from baseUrl(variable above url to the backend)
    this.http.get(this.baseUrl)
      .subscribe(
        val => {
          const usernameField = val;
          // @ts-ignore
          const usernameNaam = JSON.stringify(usernameField[usernameField.length - 1].username);
          console.log(usernameField);
          console.log(usernameField[0].username);
          this.settings.username = usernameNaam.slice(1, usernameNaam.length - 1);
        }
      );

    this.http.get(this.baseUrl)
      .subscribe(
        val => {
          const emailField = val;
          // @ts-ignore
          const emailNaam = JSON.stringify(emailField[emailField.length - 1].email);
          console.log(emailField);
          console.log(emailField[0].email);
          this.settings.email = emailNaam.slice(1, emailNaam.length - 1);
        }
      );

    this.http.get(this.baseUrl)
      .subscribe(
        val => {
          const passwordField = val;
          // @ts-ignore
          const passwordNaam = JSON.stringify(passwordField[passwordField.length - 1].password);
          console.log(passwordField);
          console.log(passwordField[0].password);
          this.settings.password = passwordNaam;
          this.settings.password = passwordNaam.slice(1, passwordNaam.length - 1);
        }
      );

    this.http.put(this.baseUrl, this.settings.username)
      .subscribe(
        val => {

        }
      );

}
}

Это из бэкэнда:

 /**
     * Updates individual user
     * @param user
     * @return updated user
     */
    @PUT
    @Consumes("application/json")
    public Response update(User user){
        repositoryService.update(user);
        return Response
                .status(200)
                .entity(user)
                .build();
    }

Может кто-нибудь помочь мне с правильным методом PUT, который я должен использовать для получения данных из моей базы данных.

1 Ответ

0 голосов
/ 25 июня 2019
   this.http.get(this.baseUrl)
  .subscribe(
    val => {
      const usernameField = val;
      // @ts-ignore
      const usernameNaam = JSON.stringify(usernameField[usernameField.length - 1].username);
      console.log(usernameField);
      console.log(usernameField[0].username);
      this.settings.username = usernameNaam.slice(1, usernameNaam.length - 1);

      this.http.put(this.baseUrl, this.settings.username)
        .subscribe(
          val => {
            console.log(val);
          }
        );
    }
  );

Это самый простой способ, который вы можете попробовать (но это плохая практика - выполнять асинхронную операцию внутри .subscribe ()).

...