42 lines
976 B
Elixir
42 lines
976 B
Elixir
defmodule Frenzy.Item do
|
|
use Ecto.Schema
|
|
import Ecto.Changeset
|
|
|
|
def to_fever(item) do
|
|
%{
|
|
id: item.id,
|
|
feed_id: item.feed_id,
|
|
title: item.title,
|
|
author: item.creator,
|
|
html: item.content,
|
|
url: item.url,
|
|
is_saved: 0,
|
|
is_read: if(item.read, do: 1, else: 0),
|
|
created_on_time: Timex.to_unix(item.date)
|
|
}
|
|
end
|
|
|
|
schema "items" do
|
|
field :content, :string
|
|
field :date, :utc_datetime
|
|
field :creator, :string
|
|
field :guid, :string
|
|
field :url, :string
|
|
field :read, :boolean, default: false
|
|
field :read_date, :utc_datetime
|
|
field :title, :string
|
|
field :tombstone, :boolean, default: false
|
|
|
|
belongs_to :feed, Frenzy.Feed
|
|
|
|
timestamps()
|
|
end
|
|
|
|
@doc false
|
|
def changeset(item, attrs) do
|
|
item
|
|
|> cast(attrs, [:guid, :title, :url, :creator, :date, :content, :read, :read_date, :tombstone])
|
|
|> validate_required([:guid, :title, :url, :date, :content, :feed])
|
|
end
|
|
end
|