Creatio.DataService (creatio v0.3.1)

Copy Markdown

Client for Creatio's proprietary DataService JSON API and custom REST WebServices.

Supports SelectQuery, InsertQuery, UpdateQuery, DeleteQuery, BatchQuery, and calling custom REST service endpoints.

Summary

Functions

Executes a BatchQuery against /0/DataService/json/SyncReply/BatchQuery.

Executes a custom Creatio REST web service (/0/rest/{service_name}/{endpoint}).

Executes a DeleteQuery against /0/DataService/json/SyncReply/DeleteQuery.

Executes a generic DataService query against /0/DataService/json/SyncReply/{action}.

Executes an InsertQuery against /0/DataService/json/SyncReply/InsertQuery.

Executes a SelectQuery against /0/DataService/json/SyncReply/SelectQuery.

Executes an UpdateQuery against /0/DataService/json/SyncReply/UpdateQuery.

Functions

batch_query(client_or_req, query_payload, opts \\ [])

@spec batch_query(Creatio.Client.t() | Req.Request.t(), map(), keyword()) ::
  {:ok, map()} | {:error, Creatio.Error.t()}

Executes a BatchQuery against /0/DataService/json/SyncReply/BatchQuery.

batch_query!(client, query_payload, opts \\ [])

Same as batch_query/3, but raises Creatio.Error on failure.

custom_service(client_or_req, service_name, endpoint, payload \\ %{}, opts \\ [])

@spec custom_service(
  Creatio.Client.t() | Req.Request.t(),
  String.t(),
  String.t(),
  any(),
  keyword()
) :: {:ok, any()} | {:error, Creatio.Error.t()}

Executes a custom Creatio REST web service (/0/rest/{service_name}/{endpoint}).

Examples

{:ok, response} =
  Creatio.DataService.custom_service(client, "CustomService", "CustomEndpoint", %{"param" => "value"})

custom_service!(client, service_name, endpoint, payload_or_opts \\ %{}, opts \\ [])

@spec custom_service!(
  Creatio.Client.t() | Req.Request.t(),
  String.t(),
  String.t(),
  any(),
  keyword()
) :: any()

Same as custom_service/5, but raises Creatio.Error on failure.

delete_query(client_or_req, query_payload, opts \\ [])

@spec delete_query(Creatio.Client.t() | Req.Request.t(), map(), keyword()) ::
  {:ok, map()} | {:error, Creatio.Error.t()}

Executes a DeleteQuery against /0/DataService/json/SyncReply/DeleteQuery.

Returns {:error, %Creatio.Error{status: 403, code: "ReadOnlyMode"}} if the client is in read-only mode.

delete_query!(client, query_payload, opts \\ [])

Same as delete_query/3, but raises Creatio.Error on failure.

execute_query(client_or_req, action, query_payload, opts \\ [])

@spec execute_query(
  Creatio.Client.t() | Req.Request.t(),
  String.t(),
  map(),
  keyword()
) ::
  {:ok, map()} | {:error, Creatio.Error.t()}

Executes a generic DataService query against /0/DataService/json/SyncReply/{action}.

execute_query!(client, action, query_payload, opts \\ [])

Same as execute_query/4, but raises Creatio.Error on failure.

insert_query(client_or_req, query_payload, opts \\ [])

@spec insert_query(Creatio.Client.t() | Req.Request.t(), map(), keyword()) ::
  {:ok, map()} | {:error, Creatio.Error.t()}

Executes an InsertQuery against /0/DataService/json/SyncReply/InsertQuery.

Returns {:error, %Creatio.Error{status: 403, code: "ReadOnlyMode"}} if the client is in read-only mode.

insert_query!(client, query_payload, opts \\ [])

Same as insert_query/3, but raises Creatio.Error on failure.

select_query(client_or_req, query_payload, opts \\ [])

@spec select_query(Creatio.Client.t() | Req.Request.t(), map(), keyword()) ::
  {:ok, map()} | {:error, Creatio.Error.t()}

Executes a SelectQuery against /0/DataService/json/SyncReply/SelectQuery.

Examples

query = %{
  "RootSchemaName" => "Account",
  "columns" => %{
    "items" => %{
      "Name" => %{
        "expression" => %{"columnPath" => "Name"}
      }
    }
  }
}

{:ok, result} = Creatio.DataService.select_query(client, query)

select_query!(client, query_payload, opts \\ [])

Same as select_query/3, but raises Creatio.Error on failure.

update_query(client_or_req, query_payload, opts \\ [])

@spec update_query(Creatio.Client.t() | Req.Request.t(), map(), keyword()) ::
  {:ok, map()} | {:error, Creatio.Error.t()}

Executes an UpdateQuery against /0/DataService/json/SyncReply/UpdateQuery.

Returns {:error, %Creatio.Error{status: 403, code: "ReadOnlyMode"}} if the client is in read-only mode.

update_query!(client, query_payload, opts \\ [])

Same as update_query/3, but raises Creatio.Error on failure.