View Source SecureX.Res (SecureX v1.1.0)

Contains CRUD For Resources.

Link to this section Summary

Functions

Add a Resource. You can send either Atom Map or String Map to add a Resource.

Delete a Resource. All Permissions will be removed against this resource.

Get a Resource.

Get list of Resources. list/1 get records without pagination list/2 & list/3 returns records with pagination

Update a Resource. You can update any resource along with its permissions. You can send either Atom Map or String Map to update a Role. It will automatically update resource_id in Permissions table.

Link to this section Functions

@spec add(map()) :: tuple()

Add a Resource. You can send either Atom Map or String Map to add a Resource.

examples

Examples

iex> add(%{"res" => "Person Farm"})
%Resource{
  id: "person_farm",
  name: "Persons Farm"
}
@spec delete(map()) :: tuple()

Delete a Resource. All Permissions will be removed against this resource.

examples

Examples

iex> delete(%{"id" => "person_organization")
%Resource{
  id: "person_organization",
  name: "Person Organization",
  permissions: :successfully_removed_permissions
}
@spec get(map()) :: tuple()

Get a Resource.

examples

Examples

iex> get(%{"res" => "person_farm"})
%Resource{
  id: "person_farm",
  name: "Persons Farm"
}
Link to this function

list(page \\ nil, page_size \\ 10)

View Source
@spec list(number(), number()) :: tuple()

Get list of Resources. list/1 get records without pagination list/2 & list/3 returns records with pagination

examples

Examples

iex> list(1, 2)
{:ok,
  %Scrivener.Page{
    entries: [
      %Resource{
        id: "person_farm",
        name: "Persons Farm"
      },
      %Resource{
        id: "users",
        name: "Users"
      },
    ],
  page_number: 1,
  page_size: 2,
  total_entries: 22,
  total_pages: 3
}

}

iex> list()
{:ok,
  [
    %Resource{
      id: "person_farm",
      name: "Persons Farm"
    },
    %Resource{
      id: "users",
      name: "Users"
    }
  ]
}
@spec update(map()) :: tuple()

Update a Resource. You can update any resource along with its permissions. You can send either Atom Map or String Map to update a Role. It will automatically update resource_id in Permissions table.

examples

Examples

iex> update(%{"id" => "person_farm", "res" => "Person Organization"})
%Resource{
  id: "person_organization",
  name: "Person Organization",
  permissions: :successfully_updated_permissions
}