The-Bugger-Ducks / owl-partners-mobile

Mobile do projeto "Owl Partners" (5º DSM - 2023, FATEC Profº Jessen Vidal - SJC)
1 stars 0 forks source link

[#0301] Adicionar comentários de atualização em uma parceria #5

Closed gioliveirass closed 1 year ago

gioliveirass commented 1 year ago

Descrição da atividade

Informações para execução da atividade

Os comentários devem possuir as seguintes informações:

Somente o usuário administrador pode inserir comentários, mas todos no sistema podem ler. Somente o dono do comentário pode editar o comentário.

DoR

DoD

MariaGabrielaReis commented 1 year ago

Documentação

Foi utilizado a classe criada para agrupar as requisições que envolvem as anotações de parceria (AnnotationsController), onde existe uma função para criação de anotações. Essa criação foi feita consumindo a rota do backend através dessa função e, ao captar o novo comentário por um input no aplicativo, foi enviado ao servidor e recarregado a listagem.

Tecnologias: React Native, Expo, Axios, Styled Components

https://user-images.githubusercontent.com/69374340/229377379-20082d99-4852-4276-a780-d2cb46e63838.mp4

Requisição

 async createAnnotation(partnerId: string, comment: string) {
    try {
      await api.post(ANNOTATION_ENDPOINTS.CREATE, {
        partnerId,
        comment,
      });
    } catch (error) {
      console.error(error);
    }
  }

Input para captação da nova mensagem

<Input
        label={"Inserir atualização"}
        placeholder={"Nova atualização sobre a parceria..."}
        value={newComment}
        onChangeText={text => setNewComment(text)}
        hasOutIcon
        onPressIcon={handleAddComment}
 />

Função que envia o novo comentário e atualiza a listagem

 async function handleAddComment() {
    setIsLoading(true);
    await AnnotationController.createAnnotation(
      "baadc558-2791-4f9a-8d1e-e01a0a92b432", // id fixo para entrega da tarefa
      newComment,
    );
    const updatedComments = await AnnotationController.getAnnotations(
      "baadc558-2791-4f9a-8d1e-e01a0a92b432",  // id fixo para entrega da tarefa
    );
    updatedComments && setAnnotations(updatedComments);
    setNewComment("");
    setIsLoading(false);
  }