30 lines
737 B
Elixir
30 lines
737 B
Elixir
defmodule Plausible.Site.GoogleAuth do
|
|
use Ecto.Schema
|
|
import Ecto.Changeset
|
|
|
|
schema "google_auth" do
|
|
field :email, :string
|
|
field :property, :string
|
|
field :refresh_token, :string
|
|
field :access_token, :string
|
|
field :expires, :naive_datetime
|
|
|
|
belongs_to :user, Plausible.Auth.User
|
|
belongs_to :site, Plausible.Site
|
|
|
|
timestamps()
|
|
end
|
|
|
|
def changeset(auth, attrs \\ %{}) do
|
|
auth
|
|
|> cast(attrs, [:refresh_token, :access_token, :expires, :email, :user_id, :site_id])
|
|
|> validate_required([:refresh_token, :access_token, :expires, :email, :user_id, :site_id])
|
|
|> unique_constraint(:site)
|
|
end
|
|
|
|
def set_property(auth, attrs \\ %{}) do
|
|
auth
|
|
|> cast(attrs, [:property])
|
|
end
|
|
end
|