Current section

Files

Jump to
elixir_dropbox lib paper users.ex
Raw

lib/paper/users.ex

defmodule ElixirDropbox.Paper.Users do
import ElixirDropbox
@doc """
Allows an owner or editor to add users to a Paper doc or change their permissions using their email address or Dropbox account ID.
## Example
members = [%{ "member" => %{ ".tag" => "email", "email" => "test@test.com" }, "permission_level": "view_and_comment" } ]
ElixirDropbox.Paper.Users.add client, "HAOV9lRfMNj90iGLqMmC7", members, "", false
More info at: https://www.dropbox.com/developers/documentation/http/documentation#paper-docs-users-add
"""
def add(client, doc_id, members, custom_message, quiet) do
body = %{
"doc_id" => doc_id,
"members" => members,
"custom_message" => custom_message,
"quiet" => quiet
}
result = to_string(Poison.Encoder.encode(body, []))
post(client, "/paper/docs/users/add", result)
end
@doc """
Lists all users who visited the Paper doc or users with explicit access.
## Example
ElixirDropbox.Paper.Users.list client, "HAOV9lRfMNj90iGLqMmC7"
More info at: https://www.dropbox.com/developers/documentation/http/documentation#paper-docs-users-list
"""
def list(client, doc_id, limit \\ 100, filter_by \\ "shared") do
body = %{"doc_id" => doc_id, "limit" => limit, "filter_by" => filter_by}
result = to_string(Poison.Encoder.encode(body, []))
post(client, "/paper/docs/users/list", result)
end
@doc """
Once a cursor has been retrieved from docs/users/list, use this to paginate through all users on the Paper doc.
## Example
ElixirDropbox.Paper.Users.list_continue client, "HAOV9lRfMNj90iGLqMmC7"
More info at: https://www.dropbox.com/developers/documentation/http/documentation#paper-docs-users-list-continue
"""
def list_continue(client, doc_id, cursor) do
body = %{"doc_id" => doc_id, "cursor" => cursor}
result = to_string(Poison.Encoder.encode(body, []))
post(client, "/paper/docs/users/continue", result)
end
@doc """
Allows an owner or editor to remove users from a Paper doc using their email address or Dropbox account ID.
## Example
member = %{ "member" => %{ ".tag" => "email", "email" => "test@test.com" }
ElixirDropbox.Paper.Users.remove client, "", member
More info at: https://www.dropbox.com/developers/documentation/http/documentation#paper-docs-users-remove
"""
def remove(client, doc_id, member) do
body = %{"doc_id" => doc_id, "member" => member}
result = to_string(Poison.Encoder.encode(body, []))
post(client, "/paper/docs/users/remove", result)
end
end