Created
September 29, 2016 20:53
-
-
Save h0lyalg0rithm/54fdfb02fd2cf8e8196b71d832c49b1b to your computer and use it in GitHub Desktop.
Revisions
-
h0lyalg0rithm created this gist
Sep 29, 2016 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,33 @@ defmodule LocationService.Daterange do @behaviour Ecto.Type def type, do: :daterange def cast([lower, upper]) do {:ok, [lower, upper]} end def cast(_), do: :error def load(%Postgrex.Range{lower: lower, upper: nil}) do lower = lower |> to_datetime {:ok, [lower, nil]} end def load(%Postgrex.Range{lower: lower, upper: upper}) do lower = lower |> to_datetime upper = upper |> to_datetime {:ok, [lower, upper]} end def dump([lower, upper]) do {:ok, %Postgrex.Range{lower: lower, upper: upper, upper_inclusive: false}} end def dump(_), do: :error defp to_datetime(value) do datetime = value |> Ecto.DateTime.load elem(datetime, 1) end end