ZenEx.Model.Ticket (zen_ex v0.8.0)

Provides functions to operate Zendesk Ticket.

Link to this section Summary

Functions

Create ticket.

Create multiple tickets.

Delete ticket specified by id.

Delete multiple tickets specified by id.

List tickets.

Search for users specified by query.

Show ticket specified by id.

Update ticket specified by id.

Update multiple tickets specified by id.

Link to this section Functions

@spec create(%ZenEx.Entity.Ticket{
  assignee_id: term(),
  collaborator_ids: term(),
  created_at: term(),
  custom_fields: term(),
  description: term(),
  due_at: term(),
  external_id: term(),
  forum_topic_id: term(),
  group_id: term(),
  has_incidents: term(),
  id: term(),
  organization_id: term(),
  priority: term(),
  problem_id: term(),
  raw_subject: term(),
  recipient: term(),
  requester_id: term(),
  satisfaction_rating: term(),
  sharing_agreement_ids: term(),
  status: term(),
  subject: term(),
  submitter_id: term(),
  tags: term(),
  ticket_form_id: term(),
  type: term(),
  updated_at: term(),
  url: term(),
  via: term()
}) ::
  {:ok,
   %ZenEx.Entity.Ticket{
     assignee_id: term(),
     collaborator_ids: term(),
     created_at: term(),
     custom_fields: term(),
     description: term(),
     due_at: term(),
     external_id: term(),
     forum_topic_id: term(),
     group_id: term(),
     has_incidents: term(),
     id: term(),
     organization_id: term(),
     priority: term(),
     problem_id: term(),
     raw_subject: term(),
     recipient: term(),
     requester_id: term(),
     satisfaction_rating: term(),
     sharing_agreement_ids: term(),
     status: term(),
     subject: term(),
     submitter_id: term(),
     tags: term(),
     ticket_form_id: term(),
     type: term(),
     updated_at: term(),
     url: term(),
     via: term()
   }}
  | {:error, any()}

Create ticket.

examples

Examples

iex> ZenEx.Model.Ticket.create(%ZenEx.Entity.Ticket{requester_id: xxx, subject: "Ticket Subject", description: "Ticket desc", ...})
{:ok, %ZenEx.Entity.Ticket{requester_id: xxx, ...}}
Link to this function

create_many(tickets)

@spec create_many([
  %ZenEx.Entity.Ticket{
    assignee_id: term(),
    collaborator_ids: term(),
    created_at: term(),
    custom_fields: term(),
    description: term(),
    due_at: term(),
    external_id: term(),
    forum_topic_id: term(),
    group_id: term(),
    has_incidents: term(),
    id: term(),
    organization_id: term(),
    priority: term(),
    problem_id: term(),
    raw_subject: term(),
    recipient: term(),
    requester_id: term(),
    satisfaction_rating: term(),
    sharing_agreement_ids: term(),
    status: term(),
    subject: term(),
    submitter_id: term(),
    tags: term(),
    ticket_form_id: term(),
    type: term(),
    updated_at: term(),
    url: term(),
    via: term()
  }
]) ::
  {:ok,
   %ZenEx.Entity.JobStatus{
     id: term(),
     message: term(),
     progress: term(),
     results: term(),
     status: term(),
     total: term(),
     url: term()
   }}
  | {:error, any()}

Create multiple tickets.

examples

Examples

iex> ZenEx.Model.Ticket.create_many([%ZenEx.Entity.Ticket{requester_id: xxx, subject: "Ticket Subject", description: "Ticket desc", ...}, ...])
{:ok, %ZenEx.Entity.JobStatus{id: "xxx"}}
@spec destroy(integer()) :: :ok | {:error, any()}

Delete ticket specified by id.

examples

Examples

iex> ZenEx.Model.Ticket.destroy(1)
{:ok, %ZenEx.Entity.Ticket{requester_id: xxx, ...}}
Link to this function

destroy_many(ids)

@spec destroy_many([integer()]) ::
  {:ok,
   %ZenEx.Entity.JobStatus{
     id: term(),
     message: term(),
     progress: term(),
     results: term(),
     status: term(),
     total: term(),
     url: term()
   }}
  | {:error, any()}

Delete multiple tickets specified by id.

examples

Examples

iex> ZenEx.Model.Ticket.destroy_many([xxx, ...])
{:ok, %ZenEx.Entity.JobStatus{id: "xxx"}}
Link to this function

list(opts \\ [])

List tickets.

examples

Examples

iex> ZenEx.Model.Ticket.list
{:ok, %ZenEx.Collection{}}
@spec search(map()) ::
  {:ok,
   %ZenEx.Collection{
     count: term(),
     decode_as: term(),
     entities: term(),
     next_page: term(),
     previous_page: term()
   }}
  | {:error, any()}
@spec search(String.t()) ::
  {:ok,
   %ZenEx.Collection{
     count: term(),
     decode_as: term(),
     entities: term(),
     next_page: term(),
     previous_page: term()
   }}
  | {:error, any()}

Search for users specified by query.

examples

Examples

iex> ZenEx.Model.User.search(%{email: "first.last@domain.com"})
{:ok, %ZenEx.Collection{}}

iex> ZenEx.Model.User.search("David"})
{:ok, %ZenEx.Collection{}}
@spec show(integer()) ::
  {:ok,
   %ZenEx.Entity.Ticket{
     assignee_id: term(),
     collaborator_ids: term(),
     created_at: term(),
     custom_fields: term(),
     description: term(),
     due_at: term(),
     external_id: term(),
     forum_topic_id: term(),
     group_id: term(),
     has_incidents: term(),
     id: term(),
     organization_id: term(),
     priority: term(),
     problem_id: term(),
     raw_subject: term(),
     recipient: term(),
     requester_id: term(),
     satisfaction_rating: term(),
     sharing_agreement_ids: term(),
     status: term(),
     subject: term(),
     submitter_id: term(),
     tags: term(),
     ticket_form_id: term(),
     type: term(),
     updated_at: term(),
     url: term(),
     via: term()
   }}
  | {:error, any()}

Show ticket specified by id.

examples

Examples

iex> ZenEx.Model.Ticket.show(1)
{:ok, %ZenEx.Entity.Ticket{id: 1, requester_id: xxx, subject: "Ticket Subject", description: "Ticket desc", ...}}
@spec update(%ZenEx.Entity.Ticket{
  assignee_id: term(),
  collaborator_ids: term(),
  created_at: term(),
  custom_fields: term(),
  description: term(),
  due_at: term(),
  external_id: term(),
  forum_topic_id: term(),
  group_id: term(),
  has_incidents: term(),
  id: term(),
  organization_id: term(),
  priority: term(),
  problem_id: term(),
  raw_subject: term(),
  recipient: term(),
  requester_id: term(),
  satisfaction_rating: term(),
  sharing_agreement_ids: term(),
  status: term(),
  subject: term(),
  submitter_id: term(),
  tags: term(),
  ticket_form_id: term(),
  type: term(),
  updated_at: term(),
  url: term(),
  via: term()
}) ::
  {:ok,
   %ZenEx.Entity.Ticket{
     assignee_id: term(),
     collaborator_ids: term(),
     created_at: term(),
     custom_fields: term(),
     description: term(),
     due_at: term(),
     external_id: term(),
     forum_topic_id: term(),
     group_id: term(),
     has_incidents: term(),
     id: term(),
     organization_id: term(),
     priority: term(),
     problem_id: term(),
     raw_subject: term(),
     recipient: term(),
     requester_id: term(),
     satisfaction_rating: term(),
     sharing_agreement_ids: term(),
     status: term(),
     subject: term(),
     submitter_id: term(),
     tags: term(),
     ticket_form_id: term(),
     type: term(),
     updated_at: term(),
     url: term(),
     via: term()
   }}
  | {:error, any()}

Update ticket specified by id.

examples

Examples

iex> ZenEx.Model.Ticket.update(%ZenEx.Entity.Ticket{id: 1, requester_id: xxx, subject: "Ticket Subject", description: "Ticket desc", ...})
{:ok, %ZenEx.Entity.Ticket{id: 1, requester_id: xxx, ...}}
Link to this function

update_many(tickets)

@spec update_many([
  %ZenEx.Entity.Ticket{
    assignee_id: term(),
    collaborator_ids: term(),
    created_at: term(),
    custom_fields: term(),
    description: term(),
    due_at: term(),
    external_id: term(),
    forum_topic_id: term(),
    group_id: term(),
    has_incidents: term(),
    id: term(),
    organization_id: term(),
    priority: term(),
    problem_id: term(),
    raw_subject: term(),
    recipient: term(),
    requester_id: term(),
    satisfaction_rating: term(),
    sharing_agreement_ids: term(),
    status: term(),
    subject: term(),
    submitter_id: term(),
    tags: term(),
    ticket_form_id: term(),
    type: term(),
    updated_at: term(),
    url: term(),
    via: term()
  }
]) ::
  {:ok,
   %ZenEx.Entity.JobStatus{
     id: term(),
     message: term(),
     progress: term(),
     results: term(),
     status: term(),
     total: term(),
     url: term()
   }}
  | {:error, any()}

Update multiple tickets specified by id.

examples

Examples

iex> ZenEx.Model.Ticket.update_many([%ZenEx.Entity.Ticket{id: xxx, requester_id: xxx, subject: "Ticket Subject", description: "Ticket desc", ...}, ...])
{:ok, %ZenEx.Entity.JobStatus{id: "xxx"}}