defmodule Dealcloud.Data.Rows do
@moduledoc """
These are Rows APIs, These APIs work using Arrays of Json objects.
These APIs are typical of what you see in most other systems. These APIs works better with ETL tools.
"""
@doc """
Gets entries in the site using either the id or api name
## Examples
Dealcloud.Data.Rows.get(2011, %Dealcloud.Data.Query{}, %Dealcloud.Auth{})
Dealcloud.Data.Rows.get("company", %Dealcloud.Data.Query{}, %Dealcloud.Auth{})
"""
@spec get(binary | integer, Dealcloud.Data.Query, Dealcloud.Auth) :: any
defdelegate get(entryTypeId, params, config),
to: Dealcloud.Impl.Data.RowData,
as: :get
@doc """
Gets entries in the site, but uses a post request instead
## Examples
Dealcloud.Data.Rows.get_as_post(2011, %Dealcloud.Data.PostQuery{}, %Dealcloud.Auth{})
Dealcloud.Data.Rows.get_as_post("company", %Dealcloud.Data.PostQuery{}, %Dealcloud.Auth{})
"""
@spec get_as_post(binary | integer, Dealcloud.Data.PostQuery, Dealcloud.Auth) :: any
defdelegate get_as_post(entryTypeId, body, config),
to: Dealcloud.Impl.Data.RowData,
as: :query
@doc """
Creates new entries in the site. EntryId must be negative integer
## Examples
Dealcloud.Data.Rows.create(2011, [{"EntryId" => -1, "Name" => "Hello"}], %Dealcloud.Auth{})
Dealcloud.Data.Rows.create("company", [{"EntryId" => -1, "Name" => "Hello"}], %Dealcloud.Auth{})
"""
@spec create(binary | integer, [map], Dealcloud.Auth) :: any
defdelegate create(entryTypeId, body, config),
to: Dealcloud.Impl.Data.RowData,
as: :post
@doc """
Updates existing entries in the site. EntryId must be positive integer
## Examples
Dealcloud.Data.Rows.update(2011, [{"EntryId" => 1, "Name" => "Hello"}], %Dealcloud.Auth{})
Dealcloud.Data.Rows.update("company", [{"EntryId" => 1, "Name" => "Hello"}], %Dealcloud.Auth{})
"""
@spec update(binary | integer, [map], Dealcloud.Auth) :: any
defdelegate update(entryTypeId, body, config),
to: Dealcloud.Impl.Data.RowData,
as: :patch
end