29 lines
660 B
Elixir
29 lines
660 B
Elixir
|
defmodule Mobilizon.Service.ActivityPub.Converter.Picture do
|
||
|
@moduledoc """
|
||
|
Picture converter.
|
||
|
|
||
|
This module allows to convert events from ActivityStream format to our own
|
||
|
internal one, and back.
|
||
|
"""
|
||
|
|
||
|
alias Mobilizon.Media.Picture, as: PictureModel
|
||
|
|
||
|
@doc """
|
||
|
Convert a picture struct to an ActivityStream representation.
|
||
|
"""
|
||
|
@spec model_to_as(PictureModel.t()) :: map
|
||
|
def model_to_as(%PictureModel{file: file}) do
|
||
|
%{
|
||
|
"type" => "Document",
|
||
|
"url" => [
|
||
|
%{
|
||
|
"type" => "Link",
|
||
|
"mediaType" => file.content_type,
|
||
|
"href" => file.url
|
||
|
}
|
||
|
],
|
||
|
"name" => file.name
|
||
|
}
|
||
|
end
|
||
|
end
|