defmodule Dealcloud.Data.Cells do @type modified :: %Dealcloud.Data.ModifiedQuery{} @type filter :: %Dealcloud.Data.Filter{} @type record :: %Dealcloud.Data.Record{} @moduledoc """ These are cell APIs. These APIs use key-value pairs when communicating with the server. Both Requests and Responses are sent as arrays of [{EntryId: 1, FieldId: 1, Value: "Hello"}]. These APIs are more performant, but may not be the best when working with ETL tools. """ @doc """ Returns name and entry ids for all records of a given entry type ## Examples Dealcloud.Data.Cells.get_keys(2011, %Dealcloud.Auth{}) """ @spec get_keys(integer, Dealcloud.Auth.t()) :: any defdelegate get_keys(entryType, config), to: Dealcloud.Impl.Data.EntryData, as: :get_entries @doc """ Returns a list of only entry ids for all records of a given entry type ## Examples Dealcloud.Data.Cells.get_ids(2011, %Dealcloud.Auth{}) """ @spec get_ids(integer, Dealcloud.Auth.t()) :: any defdelegate get_ids(entryType, config), to: Dealcloud.Impl.Data.EntryData, as: :get_entries_ids @doc """ Returns a list of name and entry ids for entries modified since the provided DateTime ## Examples modifiedDate = %Dealcloud.Data.ModifiedQuery{ modifiedSince: "2019-07-15T15:53:00.050Z"} Dealcloud.Data.Cells.get_modified(2011, modifiedDate,%Dealcloud.Auth{}) """ @spec get_modified(integer, Dealcloud.Data.ModifiedQuery, Dealcloud.Auth) :: any defdelegate get_modified(entryType, params, config), to: Dealcloud.Impl.Data.EntryData, as: :get_modified_entries @doc """ Returns a list of only entry ids for all records of a given entry type ## Examples filter1 = %Dealcloud.Data.Filter{fieldId: 1, value: "a", filterOperation: 1} filter2 = %Dealcloud.Data.Filter{fieldId: 2, value: 500, filterOperation: 0} filters = [filter1, filter2] Dealcloud.Data.Cells.get_filtered(2011, filters, %Dealcloud.Auth{}) """ @spec get_filtered(integer, Dealcloud.Data.Filter, Dealcloud.Auth) :: any defdelegate get_filtered(entryType, filters, config), to: Dealcloud.Impl.Data.EntryData, as: :filter_entries @doc """ Returns a list record field values for the entries and fields requested ## Examples field1 = %Dealcloud.Data.Record{fieldId: 1, entryId: 1} field2 = %Dealcloud.Data.Record{fieldId: 2, entryId: 1} entries = [field1, field2] query = %Dealcloud.Data.Query{wrapIntoArrays: true} Dealcloud.Data.Cells.get(entries, query, %Dealcloud.Auth{}) """ @spec get(list(Dealcloud.Data.Record), Dealcloud.Data.Query, Dealcloud.Auth) :: list(Dealcloud.Data.Record) defdelegate get(entries, params, config), to: Dealcloud.Impl.Data.EntryData @doc """ Just like `Dealcloud.Data.Cells.get/3`, except can handle requests of any size. Returns a list record field values for the entries and fields requested ## Examples field1 = %Dealcloud.Data.Record{fieldId: 1, entryId: 1} field2 = %Dealcloud.Data.Record{fieldId: 2, entryId: 1} entries = [field1, field2] query = %Dealcloud.Data.Query{wrapIntoArrays: true} Dealcloud.Data.Cells.batch_get(entries, query, %Dealcloud.Auth{}) """ @spec batch_get([Dealcloud.Data.Record], Dealcloud.Data.Query, Dealcloud.Auth.t()) :: map defdelegate batch_get(entries, params, config), to: Dealcloud.Impl.Data.Utility, as: :get @doc """ Creates new entries and Returns a list record field values for the created entries entryId must be negative integer ## Examples field1 = %Dealcloud.Data.Record{fieldId: 1, entryId: -1, value: "Hello"} field2 = %Dealcloud.Data.Record{fieldId: 2, entryId: -1, value: 6} entries = [field1, field2] Dealcloud.Data.Cells.create(2011, entries, %Dealcloud.Auth{}) """ @spec create(integer, [Dealcloud.Data.Record], Dealcloud.Auth) :: any defdelegate create(type, entries, config), to: Dealcloud.Impl.Data.EntryData, as: :post @doc """ Just like `Dealcloud.Data.Cells.create/3`, except can handle requests of any size. Creates new entries and Returns a list record field values for the created entries entryId must be negative integer ## Examples field1 = %Dealcloud.Data.Record{fieldId: 1, entryId: -1, value: "Hello"} field2 = %Dealcloud.Data.Record{fieldId: 2, entryId: -1, value: 6} entries = [field1, field2] Dealcloud.Data.Cells.create(2011, entries, %Dealcloud.Auth{}) """ @spec batch_create(integer, [Dealcloud.Data.Record], Dealcloud.Auth.t()) :: map defdelegate batch_create(type, entries, config), to: Dealcloud.Impl.Data.Utility, as: :post @doc """ Updates entries and Returns a list record field values for the created entries entryId must be positive integer ## Examples field1 = %Dealcloud.Data.Record{fieldId: 1, entryId: 1, value: "Hello"} field2 = %Dealcloud.Data.Record{fieldId: 2, entryId: 1, value: 6} entries = [field1, field2] Dealcloud.Data.Cells.update(2011, entries, %Dealcloud.Auth{}) """ @spec update(integer, [Dealcloud.Data.Record], Dealcloud.Auth) :: any defdelegate update(type, entries, config), to: Dealcloud.Impl.Data.EntryData, as: :put @doc """ Just like `Dealcloud.Data.Cells.update/3`, except can handle requests of any size. Updates entries and Returns a list record field values for the created entries entryId must be positive integer ## Examples field1 = %Dealcloud.Data.Record{fieldId: 1, entryId: 1, value: "Hello"} field2 = %Dealcloud.Data.Record{fieldId: 2, entryId: 1, value: 6} entries = [field1, field2] Dealcloud.Data.Cells.create(2011, entries, %Dealcloud.Auth{}) """ @spec batch_update(integer, [Dealcloud.Data.Record], Dealcloud.Auth.t()) :: map defdelegate batch_update(type, entries, config), to: Dealcloud.Impl.Data.Utility, as: :put @doc """ Returns a list of records and all field values for the requested entries for a given entry type ## Examples Dealcloud.Data.Cells.all_fields(2011, [1,2,3,4], %Dealcloud.Auth{}) """ @spec all_fields(binary | integer, [integer], Dealcloud.Auth.t()) :: [Dealcloud.Data.Record] defdelegate all_fields(entryType, entryIds, config), to: Dealcloud.Impl.Data.Utility, as: :all_fields @doc """ Returns a list of all records and all field values for a given entry type ## Examples Dealcloud.Data.Cells.get_all(2011, %Dealcloud.Auth{}) """ @spec get_all(integer, Dealcloud.Auth.t()) :: [Dealcloud.Data.Record] defdelegate get_all(entryType, config), to: Dealcloud.Impl.Data.Utility, as: :all_entries end