Packages

A blazing fast SDK for the DealCloud & OnePlace CRM in pure Elixir.

Current section

Files

Jump to
dealcloud lib impl management user.ex
Raw

lib/impl/management/user.ex

defmodule Dealcloud.Impl.Management.User do
@moduledoc false
alias Dealcloud.Impl.Management
alias Dealcloud.Management.User
@name "user"
@doc """
Takes a integer representing the user's Id and returns the user
## Examples
get_by_id(1, Dealcloud.Auth)
"""
@spec get_by_id(integer, Dealcloud.Auth) :: list(User)
def get_by_id(userId, config) when is_integer(userId),
do: [userId] |> get_by_ids(config)
@doc """
Takes a list of integers representing the user's Id and returns the users
## Examples
get_by_ids([1,2,3], Dealcloud.Auth)
"""
@spec get_by_ids(list(integer), Dealcloud.Auth) :: list(User)
def get_by_ids(userIds, config), do: [@name <> "s"] |> Management.post(userIds, %{}, config)
@doc """
Takes a query containing either the user's email address or a dateTime, attempts to
find the user or return all user modified since the dateTime provided
## Examples
get(%Dealcloud.Management.Query{email: "test@email.com"}, Dealcloud.Auth)
or
get(%Dealcloud.Management.Query{ModifiedSince: "2019-07-15T15:53:00.050Z"}, Dealcloud.Auth)
"""
@spec get(Dealcloud.Management.Query | integer, Dealcloud.Auth) :: list[User]
def get(params, config), do: [@name] |> Management.get(params, config)
@spec post(list[User], Dealcloud.Auth) :: list[User]
def post(body, config), do: [@name] |> Management.post(body, %{}, config)
@spec put(list[User], Dealcloud.Auth) :: list[User]
def put(body, config), do: [@name] |> Management.put(body, %{}, config)
@spec delete(integer | String.t(), Dealcloud.Auth) :: any
def delete(userId, config), do: [@name, userId] |> Management.delete(config)
end