Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F12551958
date_time.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
date_time.ex
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.EctoType.ActivityPub.ObjectValidators.DateTime
do
@moduledoc
"""
The AP standard defines the date fields in AP as xsd:DateTime. Elixir's
DateTime can't parse this, but it can parse the related iso8601. This
module punches the date until it looks like iso8601 and normalizes to
it.
DateTimes without a timezone offset are treated as UTC.
Reference: https://www.w3.org/TR/activitystreams-vocabulary/
#
dfn-published
"""
use
Ecto.Type
def
type
,
do
:
:string
def
cast
(
datetime
)
when
is_binary
(
datetime
)
do
with
{
:ok
,
datetime
,
_
}
<-
DateTime
.
from_iso8601
(
datetime
)
do
{
:ok
,
DateTime
.
to_iso8601
(
datetime
)}
else
{
:error
,
:missing_offset
}
->
cast
(
"
#{
datetime
}
Z"
)
_e
->
:error
end
end
def
cast
(
_
),
do
:
:error
def
dump
(
data
)
do
{
:ok
,
data
}
end
def
load
(
data
)
do
{
:ok
,
data
}
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Fri, Nov 14, 11:55 PM (1 d, 1 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
632922
Default Alt Text
date_time.ex (1 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment