Campos de ENUM: O que são, quais temos, e como utilizá-los em filtros
4 min
Criado por Thiago Tamanini em 29/07/2022 16:46

Neste artigo, iremos abordar o tópico de Enumerações utilizadas em nossas APIs do Movidesk. Ao longo do artigo, trataremos sobre:


O que são ENUMS

ENUM é um nome dado para campos com “enumeração” na programação. Basicamente, são dados que associam um número a determinado valor de uma lista pré definida.

Um exemplo prático seria o campo de “origin”, da nossa API de Tickets, onde cada número representa uma origem:

image2.png

Dessa forma, podemos nos organizar com maior facilidade quanto à escalabilidade e gestão de nosso sistema, dada a padronização que é fornecida pelo uso de Enumerações, pois garantimos que diferentes sistemas do Movi sempre irão ter uma mesma correlação de número <-> informação.


ENUMS utilizados nas APIs do Movidesk

Abaixo, segue tabela com os ENUMs existentes em nossas API’s, e seus respectivos tipos para utilização em filtros de consultas. Na esquerda, estará o tipo de dado respectivo ao ENUM que utilizamos, e na direita em quais campos das API’s do Movi o ENUM em questão é usado.

A API sempre estará em negrito na tabela abaixo. Se estiver escrito “tickets.type”, essa informação se refere ao atributo “type” da API de Tickets.

Caso esteja descrito como “timeAgreement.clients[n].profileType”, seria o campo “profileType”, dentro dos elementos da coleção de “clients”, da API de Contrato de Horas (timeAgreement), e assim em diante.

Nome do ENUM API.Campo
Movidesk.Core.Data.Enums.TicketType tickets.type
tickets.actions[n].type
Movidesk.Core.Data.Enums.TicketOrigin tickets.origin
tickets.actions[n].origin
Movidesk.Core.Data.Enums.PersonType tickets.clients[n].personType
tickets.slaSolutionChangedBy.personType
tickets.createdBy.personType
tickets.actions[n].timeAppointments[n].createdBy.personType
tickets.actions[n].createdBy.personType
tickets.clients[n].organization.personType
timeAgreement.clients[n].personType
timeAgreement.clients[n].organization.personType
timeAgreementConsumption.clients[n].personType
timeAgreementConsumption.clients[n].organization.personType
timeAgreementConsumption.timeAppointments[n].createdBy.personType
timeAgreementConsumption.expenses[n].createdBy.personType
Movidesk.Core.Data.Enums.ProfileType tickets.clients[n].profileType
tickets.slaSolutionChangedBy.profileType
tickets.createdBy.profileType
tickets.actions[n].timeAppointments[n].createdBy.profileType
tickets.actions[n].createdBy.profileType
tickets.clients[n].organization.profileType
services.isVisible
services.allowSelection
timeAgreement.clients[n].profileType
timeAgreement.clients[n].organization.profileType
timeAgreementConsumption.clients[n].profileType
timeAgreementConsumption.clients[n].organization.profileType
timeAgreementConsumption.timeAppointments[n].createdBy.profileType
timeAgreementConsumption.expenses[n].createdBy.profileType
Movidesk.Core.Data.Enums.SatisfactionSurveyModel tickets.satisfactionSurveyResponses[n].satisfactionSurveyModel
Movidesk.Core.Data.Enums.SatisfactionSurveyNetPromoterScoreResponse tickets.satisfactionSurveyResponses[n].satisfactionSurveyNetPromoterScoreResponse
Movidesk.Core.Data.Enums.SatisfactionSurveyPositiveNegativeResponse tickets.satisfactionSurveyResponses[n].satisfactionSurveyPositiveNegativeResponse
Movidesk.Core.Data.Enums.SatisfactionSurveySmileyFacesResponse tickets.satisfactionSurveyResponses[n].satisfactionSurveySmileyFacesResponse
Movidesk.Core.Data.Enums.AccessLevelTicketType services.serviceForTicketType
Movidesk.Core.Data.Enums.DiscountType timeAgreementConsumption.discountType

 

Como utilizar os ENUMs em suas buscas da API

Agora que já sabemos o que são ENUMs, e onde eles são usados em nossas API’s, podemos partir para a utilização deles em filtros de consultas aos nossos sistemas.

Pegando um exemplo prático, se quisermos somente tickets com ações que foram criadas por um usuário do tipo “cliente”, podemos utilizar o campo de tickets.actions[n].createdBy.profileType, da API de Tickets.

Esse campo, como pode ser visto na tabela acima, é do tipo ENUM “Movidesk.Core.Data.Enums.ProfileType”. Nesse caso, se tentássemos com uma requisição como a consulta abaixo, teríamos um erro 400 (tratado neste artigo aqui):

https://api.movidesk.com/public/v1/tickets?token={{Token}}&$select=id&$filter=actions/any(action : action/createdBy/profileType eq 1)

image1.png


Nesse caso, como abordado no artigo mencionado, a resolução é bem prática. Basta cobrirmos o “1” da nossa consulta com aspas simples, e antes dele, adicionarmos o nome do ENUM. Nesse caso, a consulta editada ficaria assim:

https://api.movidesk.com/public/v1/tickets?token={{Token}}&$select=id&$filter=actions/any(action : action/createdBy/profileType eq Movidesk.Core.Data.Enums.ProfileType'1')

Em negrito, e tom avermelhado, está a adição do tipo de ENUM do campo (conforme pode ser visto na tabela supracitada) e as aspas simples, ao redor do valor de enumeração que estamos buscando.

A mesma lógica deve ser utilizada para consultas de outros campos de ENUM de nossas API’s, sempre “envolvendo” a numeração desejada do ENUM por aspas simples, e antes da primeira aspa, adicionando o nome do ENUM que estamos buscando (que pode sempre ser validado na tabela deste artigo).

Este artigo foi útil para você?
Últimos artigos visitados