inclusao_ou_alteracao - VWJavascript/Alurapic GitHub Wiki

Inclusão ou Alteração

Ainda não acabamos. FotoService só está preparado para incluir fotos e não alterá-las.

Vamos alterar o método cadastra de FotoService realizando uma verificação. Caso a foto recebida como parâmetro não tenha um ID, uma inclusão será realizada, mas caso ela já tenha essa informação, será realizada uma alteração:

// alurapic/client/app/foto/foto.service.ts

// código anterior omitido

@Injectable() 
export class FotoService {

    // código anterior omitido

    cadastra(foto: FotoComponent): Observable<Response> {

        if (foto._id) {
            return this.http.put(this.url + '/' + foto._id, JSON.stringify(foto), 
            { headers: this.headers });
        } else {
            return this.http.post(this.url, JSON.stringify(foto), 
                { headers: this.headers });
        }
    }
    // código posterior omitido

Quando usamos http.put, passamos como parâmetro a URL v1/foto/ concatenada com o ID da foto que o método cadastra recebeu. O segundo parâmetro é um JSON com os dados que queremos atualizar no servidor.

Pronto! Todas as alterações que fizemos devem ser aplicadas em nosso servidor. Quando voltamos para ListagemComponent vemos a foto com seus dados alterados.

⚠️ **GitHub.com Fallback** ⚠️