Skip to main content

Obter avaliações de livros

Nota

Nota

Deseja aprender em português (Brasil)? Comece o desafio em um Trailhead Playground de português (Brasil) e use as traduções fornecidas entre parênteses para navegar. Copie e cole somente os valores em inglês porque as validações dos desafios dependem de dados em inglês. Se você não passar no desafio em sua organização de português (Brasil), recomendamos que (1) mude o local para os Estados Unidos, (2) mude o idioma para inglês, seguindo as instruções aqui, e (3) clique novamente no botão “Validar o desafio”.

Consulte o emblema Trailhead no seu idioma para saber mais sobre como aproveitar a experiência de Trailhead em outros idiomas.

Acompanhar com o Trail Together

Deseja acompanhar um especialista enquanto trabalha nesta etapa? Veja este vídeo que faz parte da série Trail Together.

(Este clipe começa na marca dos 08:41 minutos, caso você queira retroceder e ver o início da etapa novamente.)

Introdução

A Books4Everyone ama o que você fez até agora e quer tornar seu aplicativo ainda mais robusto mostrando as avaliações de livros diretamente na página inicial. Para chamar a atenção da equipe de publicidade em relação a isso, eles pediram um novo componente para a página inicial. Assim como da outra vez, eles forneceram uma consulta SQL que você precisa transformar em consulta SOQL.

Criar um inner join

Antes de criarmos nossa consulta no Apex, vamos ver a consulta SQL.

SELECT r.Name, r.Review, r.Grade, b.Name
  FROM recommendation r, book b
  WHERE b.Id != null

Você sabe que Livro está relacionado com Recomendação em um relacionamento entre mestre e detalhes. Você escreve a seguinte consulta.

SELECT Name, Review__c, Rating__c, Book__r.Name
  FROM Recommendation__c
  WHERE Book__c != null

Criar Apex e o novo componente

Primeiro, adicione a nova consulta SOQL à classe de controladores do Apex.

  1. No Developer Console, abra a classe do Apex Books4EveryoneHomeController.
  2. Adicione o seguinte bloco de código depois dos primeiros dois métodos:
      @AuraEnabled
      public static List<Recommendation__c> getBookRecommendations() {
        return [SELECT Name, Review__c, Rating__c, Book__r.Name
          FROM Recommendation__c
          WHERE Book__c != null];
      }

Em seguida, crie um novo componente do Lightning e um controlador JavaScript.

  1. Crie outro componente clicando em File (Arquivo) > New (Novo) > Lightning Component (Componente do Lightning ).
  2. Dê ao seu novo componente do Lightning o nome de Books4EveryoneRecommendations.
  3. Na seção de configuração do componente, selecione Lightning Page (Página do Lightning) e clique em Submit (Enviar).
  4. Substitua o código no arquivo .cmp por este código:
    <aura:component implements="flexipage:availableForAllPageTypes" access="global" controller="Books4EveryoneHomeController">
      <aura:attribute name="Recommendations" type="Recommendation__c" />
      <aura:handler name="init" action="{!c.doInit}" value="{!this}"/>
      <lightning:card title="Books4Everyone Recommendations">
        <aura:set attribute="body">
          <table class="slds-table slds-table_bordered slds-table_cell-buffer">
            <thead>
              <tr class="slds-text-title_caps">
                <th scope="col">Book Title</th>
                <th scope="col">Rating</th>
                <th scope="col">Review</th>
              </tr>
            </thead>
            <tbody>
              <aura:iteration items="{!v.Recommendations}" var="recommendations">
                <tr scope="row">
                  <td> {!recommendations.Book__r.Name}</td>
                  <td> {!recommendations.Rating__c}</td>
                  <td> {!recommendations.Review__c}</td>
                </tr>
              </aura:iteration>
            </tbody>
          </table>
        </aura:set>
      </lightning:card>
    </aura:component>
  5. Clique em Controller (Controlador) no lado direito da página a fim de criar um controlador para seu componente.
  6. Substitua o JavaScript do controlador pelo código a seguir.
    ({
      doInit: function(component, event, helper) {
        var action = component.get("c.getBookRecommendations");
        action.setCallback(this, function(data) {
          component.set("v.Recommendations", data.getReturnValue());
          console.log(data.getReturnValue()); });
        $A.enqueueAction(action);
      }
    })
  7. Salve todas as suas guias abertas.

Vejamos como esse componente funciona na prática!

Nossa etapa final é garantir que a consulta funcionou como esperado adicionando nosso componente à página inicial.

  1. Na sua organização, navegue até o aplicativo Books4Everyone.
  2. Clique em Home (Início).
  3. No canto superior direito, clique em Configuração e selecione Edit Page (Editar página).
  4. No lado esquerdo do criador de aplicativo Lightning, encontre Books4EveryoneRecommendations na lista de componentes personalizados.
  5. Arraste o componente até a página.
  6. Clique em Save (Salvar) e em Voltar para retornar à página inicial.
  7. A etapa final é verificar os dados na sua página inicial. Ela deverá ficar mais ou menos assim:

Essa é uma imagem que mostra a guia inicial e os dois componentes do Lightning com dados de consulta SOQL

Compartilhe seu feedback do Trailhead usando a Ajuda do Salesforce.

Queremos saber sobre sua experiência com o Trailhead. Agora você pode acessar o novo formulário de feedback, a qualquer momento, no site Ajuda do Salesforce.

Saiba mais Continue compartilhando feedback