Uma biblioteca em .netstandard para trabalhar com as APIs da Movidesk.
- Ticket
- Person
- Service
- TimeAgreement
Instale o NuGet e execute a partir do package manager console:
PM> Install-Package Movidesk.Api.Client
MovideskApiClientOptions options = new MovideskApiClientOptions { Token = "movidesk-token" };
MovideskClient client = new MovideskClient(new MovideskApiClient(options));Documentação da API de Tickets da Movidesk: https://atendimento.movidesk.com/kb/pt-br/article/256/movidesk-ticket-api
...
var ticket = await client.Tickets.GetById(42);É obrigatório informar os campos do filtro $select para buscar uma lista de tickets.
...
var tickets = await client.Tickets.Get(new OData { Select = "id,subject" });...
var result = await client.Tickets.Post(new Ticket
{
Subject = "meu ticket",
Type = Enums.TicketType.Internal,
CreatedBy = new TicketPerson { Id = "ref_code" },
Actions = new List<TicketAction>
{
new TicketAction {
Description = "minha ação",
Type = Enums.TicketType.Internal
}
},
Clients = new List<TicketClient>
{
new TicketClient { Id = "ref_code" }
}
});As atualizações são feitas informando somente os atributos que desejam ser atualizados. Neste exemplo somente o campo Subject será atualizado.
...
var result = await client.Tickets.Patch(42, new Ticket
{
Subject = "meu assunto de ticket alterado"
});Documentação da API de Pessoas da Movidesk: https://atendimento.movidesk.com/kb/pt-br/article/189/movidesk-person-api
...
var person = await client.Persons.GetById("42");...
var persons = await client.Persons.Get();Retorna uma lista de pessoas, com profileType = 2, os 10 primeiros registros, pulando 30 registros e selecionando os campos id e businessName.
...
var persons = await client.Persons.Get(new OData
{
Filter = "profileType eq 2",
Top = 10,
Skip = 30,
Select = "id,businessName"
});...
var result = await client.Persons.Post(new Person
{
BusinessName = "James Bond",
ProfileType = Enums.ProfileType.Agent,
PersonType = Enums.PersonType.Person,
IsActive = true,
AccessProfile = "Agentes",
Teams = new List<string> { "Agentes" }
});As atualizações são feitas informando somente os atributos que desejam ser atualizados. Neste exemplo somente o campo BusinessName será atualizado.
...
var result = await client.Persons.Patch("007", new Person { BusinessName = "Bond, James Bond" });...
var result = await client.Persons.Delete("007");Documentação da API de Serviços da Movidesk: https://atendimento.movidesk.com/kb/pt-br/article/7440/api-servicos
...
var result = await client.Services.GetById(42);...
var result = await client.Services.Get();...
var result = client.Services.Get(new OData { Top = 1 });...
var result = await client.Services.Post(new Service
{
Name = "Serviço",
Description = "Desc",
IsVisible = ServiceVisibility.AgentAndClient,
ServiceForTicketType = ServiceTicketType.PublicAndInternal,
AllowSelection = ServiceSelection.AgentAndClient,
AllowFinishTicket = true,
IsActive = true,
AllowAllCategories = true
});As atualizações são feitas informando somente os atributos que desejam ser atualizados. Neste exemplo somente o campo Description será atualizado.
...
var result = await client.Services.Patch(42, new Service { Description = "Nova descrição" });...
var result = await client.Services.Delete(42);