zen_ex v0.4.2 ZenEx.Model.Ticket

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

Specs

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()
}) ::
  %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, String.t()}

Create ticket.

Examples

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

create_many(tickets)

Specs

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()
  }
]) ::
  %ZenEx.Entity.JobStatus{
    id: term(),
    message: term(),
    progress: term(),
    results: term(),
    status: term(),
    total: term(),
    url: term()
  }
  | {:error, String.t()}

Create multiple tickets.

Examples

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

Specs

destroy(integer()) :: :ok | :error

Delete ticket specified by id.

Examples

iex> ZenEx.Model.Ticket.destroy(1)
:ok
Link to this function

destroy_many(ids)

Specs

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

Delete multiple tickets specified by id.

Examples

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

list(opts \\ [])

List tickets.

Examples

iex> ZenEx.Model.Ticket.list
%ZenEx.Collection{}

Specs

search(map()) ::
  %ZenEx.Collection{
    count: term(),
    decode_as: term(),
    entities: term(),
    next_page: term(),
    previous_page: term()
  }
  | {:error, String.t()}
search(String.t()) ::
  %ZenEx.Collection{
    count: term(),
    decode_as: term(),
    entities: term(),
    next_page: term(),
    previous_page: term()
  }
  | {:error, String.t()}

Search for users specified by query.

Examples

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

iex> ZenEx.Model.User.search("David"})
%ZenEx.Collection{}

Specs

show(integer()) ::
  %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, String.t()}

Show ticket specified by id.

Examples

iex> ZenEx.Model.Ticket.show(1)
%ZenEx.Entity.Ticket{id: 1, requester_id: xxx, subject: "Ticket Subject", description: "Ticket desc", ...}

Specs

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()
}) ::
  %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, String.t()}

Update ticket specified by id.

Examples

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

update_many(tickets)

Specs

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()
  }
]) ::
  %ZenEx.Entity.JobStatus{
    id: term(),
    message: term(),
    progress: term(),
    results: term(),
    status: term(),
    total: term(),
    url: term()
  }
  | {:error, String.t()}

Update multiple tickets specified by id.

Examples

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