MrYawe / prismic-elixir

Elixir SDK for Prismic.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Prismic Build Status

This is an Elixir-based SDK for Prismic.io Mostly based on https://github.com/prismicio/ruby-kit and https://github.com/prismicio/javascript-kit

  • The primary authors of this library are:
    1. Coburn Berry (coburncoburn)
    • API
    • Cache
    • Predicates
    1. David Wu (sudostack)
    • Fragments
    • Parser
  • TODOs:

Installation

def deps do
  [
      {:prismic, git: "https://github.com/TheRealReal/prismic-elixir", branch: "master"}
  ]
end

set repo url in your project's config

  config :prismic,
    repo_url: "https://micro.cdn.prismic.io/api"

Usage

Prismic.V2.API.new()
|> SearchForm.from_api()
|> SearchForm.set_ref(<ref>) # master ref / versioned ref
|> SearchForm.set_query_predicates([Predicate.at("document.id", <id>)])
|> SearchForm.submit()
|> Map.fetch!(:results)
|> Parser.parse_documents() # %Prismic.Document{id: ..., uid: ..., href: ..., fragments...}

Configuring HTTP Client

The default HTTP Client is Poison. It is possible to use any http client that implements the Prismic.HTTPClient behaviour .

Then, set the HTTPClient Module in config or within

    Application.put_env(:prismic, :http_client_module, MyApp.HTTPClient)

Configuring Cache

The default Cache is an Agent . It is possible to use any cache that implements the Prismic.Cache behaviour .

Then, set the Cache Module in config or within

    Application.put_env(:prismic, :cache_module, MyApp.Cache)

Only the first leg of the request ( api entrypoint ) is cached. Actual document queries are not cached. It is probably better to just cache calls to the library itself rather than worrying about caching in the library.

About

Elixir SDK for Prismic.io


Languages

Language:Elixir 100.0%