defmodule Ondix.Collection do defstruct current_page: 0, data: [], first_page_url: "", from: 0, last_page: 0, last_page_url: "", next_page_url: "", path: "", per_page: 0, prev_page_url: nil, to: 0, total: 0 def fromResponse( %{ current_page: a, data: b, first_page_url: c, from: d, last_page: e, last_page_url: f, next_page_url: g, path: h, per_page: i, prev_page_url: j, to: k, total: l } ) do %Ondix.Collection{ current_page: a, data: b, first_page_url: c, from: d, last_page: e, last_page_url: f, next_page_url: g, path: h, per_page: i, prev_page_url: j, to: k, total: l } end def get_next_page(%Ondix.Collection{next_page_url: nil}), do: raise Ondix.Error, message: "Collection doesn't have a next page" def get_next_page(%Ondix.Collection{next_page_url: url}), do: Ondix.Client.fetchNoPrefix(url) |> fromResponse def get_prev_page(%Ondix.Collection{prev_page_url: nil}), do: raise Ondix.Error, message: "Collection doesn't have a previous page" def get_prev_page(%Ondix.Collection{prev_page_url: url}), do: Ondix.Client.fetchNoPrefix(url) |> fromResponse end