improve accuracy of timestamps
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
@ -27,6 +27,7 @@ defmodule Cannery do
|
||||
|
||||
@primary_key {:id, :binary_id, autogenerate: true}
|
||||
@foreign_key_type :binary_id
|
||||
@timestamps_opts [type: :utc_datetime_usec]
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -11,13 +11,13 @@ defmodule Cannery.Accounts.Invite do
|
||||
field :name, :string
|
||||
field :token, :string
|
||||
field :uses_left, :integer, default: nil
|
||||
field :disabled_at, :naive_datetime
|
||||
field :disabled_at, :utc_datetime_usec
|
||||
|
||||
belongs_to :created_by, User
|
||||
|
||||
has_many :users, User
|
||||
|
||||
timestamps(type: :utc_datetime)
|
||||
timestamps(type: :utc_datetime_usec)
|
||||
end
|
||||
|
||||
@type t :: %__MODULE__{
|
||||
@ -25,12 +25,12 @@ defmodule Cannery.Accounts.Invite do
|
||||
name: String.t(),
|
||||
token: token(),
|
||||
uses_left: integer() | nil,
|
||||
disabled_at: NaiveDateTime.t(),
|
||||
disabled_at: DateTime.t(),
|
||||
created_by: User.t() | nil | Association.NotLoaded.t(),
|
||||
created_by_id: User.id() | nil,
|
||||
users: [User.t()] | Association.NotLoaded.t(),
|
||||
inserted_at: NaiveDateTime.t(),
|
||||
updated_at: NaiveDateTime.t()
|
||||
inserted_at: DateTime.t(),
|
||||
updated_at: DateTime.t()
|
||||
}
|
||||
@type new_invite :: %__MODULE__{}
|
||||
@type id :: UUID.t()
|
||||
|
@ -123,7 +123,7 @@ defmodule Cannery.Accounts.Invites do
|
||||
end
|
||||
|
||||
defp decrement_invite_changeset(%Invite{uses_left: 1} = invite) do
|
||||
now = NaiveDateTime.utc_now() |> NaiveDateTime.truncate(:second)
|
||||
now = DateTime.utc_now()
|
||||
invite |> Invite.update_changeset(%{uses_left: 0, disabled_at: now})
|
||||
end
|
||||
|
||||
|
@ -22,7 +22,7 @@ defmodule Cannery.Accounts.User do
|
||||
field :password, :string, virtual: true
|
||||
field :hashed_password, :string
|
||||
field :current_password, :string, virtual: true, redact: true
|
||||
field :confirmed_at, :naive_datetime
|
||||
field :confirmed_at, :utc_datetime_usec
|
||||
field :role, Ecto.Enum, values: [:admin, :user], default: :user
|
||||
field :locale, :string
|
||||
|
||||
@ -30,7 +30,7 @@ defmodule Cannery.Accounts.User do
|
||||
|
||||
belongs_to :invite, Invite
|
||||
|
||||
timestamps(type: :utc_datetime)
|
||||
timestamps(type: :utc_datetime_usec)
|
||||
end
|
||||
|
||||
@type t :: %User{
|
||||
@ -38,14 +38,14 @@ defmodule Cannery.Accounts.User do
|
||||
email: String.t(),
|
||||
password: String.t(),
|
||||
hashed_password: String.t(),
|
||||
confirmed_at: NaiveDateTime.t(),
|
||||
confirmed_at: DateTime.t(),
|
||||
role: role(),
|
||||
locale: String.t() | nil,
|
||||
created_invites: [Invite.t()] | Association.NotLoaded.t(),
|
||||
invite: Invite.t() | nil | Association.NotLoaded.t(),
|
||||
invite_id: Invite.id() | nil,
|
||||
inserted_at: NaiveDateTime.t(),
|
||||
updated_at: NaiveDateTime.t()
|
||||
inserted_at: DateTime.t(),
|
||||
updated_at: DateTime.t()
|
||||
}
|
||||
@type new_user :: %User{}
|
||||
@type id :: UUID.t()
|
||||
@ -168,7 +168,7 @@ defmodule Cannery.Accounts.User do
|
||||
"""
|
||||
@spec confirm_changeset(t() | changeset()) :: changeset()
|
||||
def confirm_changeset(user_or_changeset) do
|
||||
now = NaiveDateTime.utc_now() |> NaiveDateTime.truncate(:second)
|
||||
now = DateTime.utc_now()
|
||||
user_or_changeset |> change(confirmed_at: now)
|
||||
end
|
||||
|
||||
|
@ -32,7 +32,7 @@ defmodule Cannery.Accounts.UserToken do
|
||||
sent_to: String.t(),
|
||||
user: User.t() | Association.NotLoaded.t(),
|
||||
user_id: User.id() | nil,
|
||||
inserted_at: NaiveDateTime.t()
|
||||
inserted_at: DateTime.t()
|
||||
}
|
||||
@type new_user_token :: %__MODULE__{}
|
||||
@type id :: UUID.t()
|
||||
|
@ -24,7 +24,7 @@ defmodule Cannery.ActivityLog.ShotRecord do
|
||||
field :user_id, :binary_id
|
||||
field :pack_id, :binary_id
|
||||
|
||||
timestamps(type: :utc_datetime)
|
||||
timestamps(type: :utc_datetime_usec)
|
||||
end
|
||||
|
||||
@type t :: %__MODULE__{
|
||||
@ -34,8 +34,8 @@ defmodule Cannery.ActivityLog.ShotRecord do
|
||||
date: Date.t() | nil,
|
||||
pack_id: Pack.id(),
|
||||
user_id: User.id(),
|
||||
inserted_at: NaiveDateTime.t(),
|
||||
updated_at: NaiveDateTime.t()
|
||||
inserted_at: DateTime.t(),
|
||||
updated_at: DateTime.t()
|
||||
}
|
||||
@type new_shot_record :: %__MODULE__{}
|
||||
@type id :: UUID.t()
|
||||
|
@ -920,7 +920,7 @@ defmodule Cannery.Ammo do
|
||||
multiplier <= @pack_create_limit and
|
||||
type_id |> is_binary() and
|
||||
container_id |> is_binary() do
|
||||
now = NaiveDateTime.utc_now() |> NaiveDateTime.truncate(:second)
|
||||
now = DateTime.utc_now()
|
||||
|
||||
changesets =
|
||||
Enum.map(1..multiplier, fn _count ->
|
||||
|
@ -30,7 +30,7 @@ defmodule Cannery.Ammo.Pack do
|
||||
field :container_id, :binary_id
|
||||
field :user_id, :binary_id
|
||||
|
||||
timestamps(type: :utc_datetime)
|
||||
timestamps(type: :utc_datetime_usec)
|
||||
end
|
||||
|
||||
@type t :: %__MODULE__{
|
||||
@ -44,8 +44,8 @@ defmodule Cannery.Ammo.Pack do
|
||||
type_id: Type.id(),
|
||||
container_id: Container.id(),
|
||||
user_id: User.id(),
|
||||
inserted_at: NaiveDateTime.t(),
|
||||
updated_at: NaiveDateTime.t()
|
||||
inserted_at: DateTime.t(),
|
||||
updated_at: DateTime.t()
|
||||
}
|
||||
@type new_pack :: %__MODULE__{}
|
||||
@type id :: UUID.t()
|
||||
|
@ -90,7 +90,7 @@ defmodule Cannery.Ammo.Type do
|
||||
field :user_id, :binary_id
|
||||
has_many :packs, Pack
|
||||
|
||||
timestamps(type: :utc_datetime)
|
||||
timestamps(type: :utc_datetime_usec)
|
||||
end
|
||||
|
||||
@type t :: %__MODULE__{
|
||||
@ -129,8 +129,8 @@ defmodule Cannery.Ammo.Type do
|
||||
dram_equivalent: String.t() | nil,
|
||||
user_id: User.id(),
|
||||
packs: [Pack.t()] | nil,
|
||||
inserted_at: NaiveDateTime.t(),
|
||||
updated_at: NaiveDateTime.t()
|
||||
inserted_at: DateTime.t(),
|
||||
updated_at: DateTime.t()
|
||||
}
|
||||
@type new_type :: %__MODULE__{}
|
||||
@type id :: UUID.t()
|
||||
|
@ -27,7 +27,7 @@ defmodule Cannery.Containers.Container do
|
||||
|
||||
many_to_many :tags, Tag, join_through: ContainerTag
|
||||
|
||||
timestamps(type: :utc_datetime)
|
||||
timestamps(type: :utc_datetime_usec)
|
||||
end
|
||||
|
||||
@type t :: %__MODULE__{
|
||||
@ -39,8 +39,8 @@ defmodule Cannery.Containers.Container do
|
||||
type: String.t(),
|
||||
user_id: User.id(),
|
||||
tags: [Tag.t()] | nil,
|
||||
inserted_at: NaiveDateTime.t(),
|
||||
updated_at: NaiveDateTime.t()
|
||||
inserted_at: DateTime.t(),
|
||||
updated_at: DateTime.t()
|
||||
}
|
||||
@type new_container :: %__MODULE__{}
|
||||
@type id :: UUID.t()
|
||||
|
@ -11,7 +11,7 @@ defmodule Cannery.Containers.ContainerTag do
|
||||
belongs_to :container, Container
|
||||
belongs_to :tag, Tag
|
||||
|
||||
timestamps(type: :utc_datetime)
|
||||
timestamps(type: :utc_datetime_usec)
|
||||
end
|
||||
|
||||
@type t :: %__MODULE__{
|
||||
@ -20,8 +20,8 @@ defmodule Cannery.Containers.ContainerTag do
|
||||
container_id: Container.id(),
|
||||
tag: Tag.t(),
|
||||
tag_id: Tag.id(),
|
||||
inserted_at: NaiveDateTime.t(),
|
||||
updated_at: NaiveDateTime.t()
|
||||
inserted_at: DateTime.t(),
|
||||
updated_at: DateTime.t()
|
||||
}
|
||||
@type new_container_tag :: %__MODULE__{}
|
||||
@type id :: UUID.t()
|
||||
|
@ -20,7 +20,7 @@ defmodule Cannery.Containers.Tag do
|
||||
|
||||
field :user_id, :binary_id
|
||||
|
||||
timestamps(type: :utc_datetime)
|
||||
timestamps(type: :utc_datetime_usec)
|
||||
end
|
||||
|
||||
@type t :: %__MODULE__{
|
||||
@ -29,8 +29,8 @@ defmodule Cannery.Containers.Tag do
|
||||
bg_color: String.t(),
|
||||
text_color: String.t(),
|
||||
user_id: User.id(),
|
||||
inserted_at: NaiveDateTime.t(),
|
||||
updated_at: NaiveDateTime.t()
|
||||
inserted_at: DateTime.t(),
|
||||
updated_at: DateTime.t()
|
||||
}
|
||||
@type new_tag() :: %__MODULE__{}
|
||||
@type id() :: UUID.t()
|
||||
|
@ -136,7 +136,7 @@ defmodule CanneryWeb.CoreComponents do
|
||||
attr :datetime, :any, required: true, doc: "A `DateTime` struct or nil"
|
||||
|
||||
@doc """
|
||||
Phoenix.Component for a <time> element that renders the naivedatetime in the
|
||||
Phoenix.Component for a <time> element that renders the DateTime in the
|
||||
user's local timezone
|
||||
"""
|
||||
def datetime(assigns)
|
||||
@ -153,8 +153,8 @@ defmodule CanneryWeb.CoreComponents do
|
||||
"""
|
||||
def date_range(assigns)
|
||||
|
||||
@spec cast_datetime(NaiveDateTime.t() | nil) :: String.t()
|
||||
defp cast_datetime(%NaiveDateTime{} = datetime) do
|
||||
@spec cast_datetime(DateTime.t() | nil) :: String.t()
|
||||
defp cast_datetime(%DateTime{} = datetime) do
|
||||
datetime |> DateTime.from_naive!("Etc/UTC") |> DateTime.to_iso8601(:extended)
|
||||
end
|
||||
|
||||
|
@ -93,7 +93,7 @@ defmodule CanneryWeb.InviteLive.Index do
|
||||
%{"id" => id},
|
||||
%{assigns: %{current_user: current_user}} = socket
|
||||
) do
|
||||
now = NaiveDateTime.utc_now() |> NaiveDateTime.truncate(:second)
|
||||
now = DateTime.utc_now()
|
||||
|
||||
socket =
|
||||
Invites.get_invite!(id, current_user)
|
||||
|
Reference in New Issue
Block a user