Skip to content

wealthfit/prismic-elixir

This branch is 14 commits behind TheRealReal/prismic-elixir:main.

Repository files navigation

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Elixir 100.0%