# Excontentstack
[](https://hex.pm/packages/excontentstack)
[](https://hexdocs.pm/excontentstack/)
Elixir wrapper for [Contentstack's](https://www.contentstack.com/) Management API. A simple and idiomatic way to interact with Contentstack from Elixir applications.
## Installation
Add `excontentstack` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:excontentstack, "~> 0.1.0"}
]
end
```
Then run:
```bash
mix deps.get
```
## Configuration
You can configure Contentstack credentials in your config files:
```elixir
config :excontentstack,
management_token: System.get_env("CONTENTSTACK_MANAGEMENT_TOKEN"),
api_key: System.get_env("CONTENTSTACK_API_KEY"),
master_locale: "en-us"
```
## Usage
### Management API
The Management API allows you to manage content in your Contentstack account.
```elixir
# Create a client
client = Excontentstack.Management.new(
management_token: "your_management_token",
api_key: "your_api_key",
master_locale: "en-us"
)
# List entries
{:ok, entries} = Excontentstack.Management.Entries.list(client, "blog_post")
# Get a specific entry
{:ok, entry} = Excontentstack.Management.Entries.get(client, "blog_post", "entry_uid")
# Create an entry
{:ok, new_entry} = Excontentstack.Management.Entries.create(client, "blog_post", %{
title: "My Blog Post",
content: "This is the content"
})
# Update an entry
{:ok, updated_entry} = Excontentstack.Management.Entries.update(
client,
"blog_post",
"entry_uid",
%{title: "Updated Title"}
)
# Delete an entry
{:ok, _} = Excontentstack.Management.Entries.delete(client, "blog_post", "entry_uid")
```
## Roadmap
The following requirements are planned for the future:
- Extending Management API to support managing all other resources (not just entries)
- Delivery API support