Refactor media upload

Use Upload Media logic from Pleroma

Backend changes for picture upload

Move AS <-> Model conversion to separate module

Front changes

Downgrade apollo-client: https://github.com/Akryum/vue-apollo/issues/577

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2019-05-22 14:12:11 +02:00
parent 9724bc8e9f
commit f90089e1bf
113 changed files with 4718 additions and 1328 deletions

View File

@@ -50,4 +50,21 @@ defmodule Mobilizon.DataCase do
end)
end)
end
def ensure_local_uploader(_context) do
uploader = Mobilizon.CommonConfig.get([MobilizonWeb.Upload, :uploader])
filters = Mobilizon.CommonConfig.get([MobilizonWeb.Upload, :filters])
unless uploader == MobilizonWeb.Uploaders.Local || filters != [] do
Mobilizon.CommonConfig.put([MobilizonWeb.Upload, :uploader], MobilizonWeb.Uploaders.Local)
Mobilizon.CommonConfig.put([MobilizonWeb.Upload, :filters], [])
on_exit(fn ->
Mobilizon.CommonConfig.put([MobilizonWeb.Upload, :uploader], uploader)
Mobilizon.CommonConfig.put([MobilizonWeb.Upload, :filters], filters)
end)
end
:ok
end
end

View File

@@ -33,6 +33,8 @@ defmodule Mobilizon.Factory do
followings: [],
keys: pem,
type: :Person,
avatar: build(:file, name: "Avatar"),
banner: build(:file, name: "Banner"),
url: Actor.build_url(preferred_username, :page),
followers_url: Actor.build_url(preferred_username, :followers),
following_url: Actor.build_url(preferred_username, :following),
@@ -167,4 +169,18 @@ defmodule Mobilizon.Factory do
token: Ecto.UUID.generate()
}
end
def file_factory do
%Mobilizon.Media.File{
name: "My Picture",
url: MobilizonWeb.Endpoint.url() <> "/uploads/something",
content_type: "image/png"
}
end
def picture_factory do
%Mobilizon.Media.Picture{
file: build(:file)
}
end
end