Separating of Storage context

This commit is contained in:
miffy
2019-09-08 01:49:56 +02:00
parent 86a0630a7d
commit fa037fd683
34 changed files with 167 additions and 180 deletions

View File

@@ -26,25 +26,24 @@ defmodule Mobilizon.Actors.Actor do
@moduledoc """
Represents an actor (local and remote actors)
"""
use Ecto.Schema
import Ecto.Changeset
import Ecto.Query
alias Mobilizon.Actors
alias Mobilizon.Actors.{Actor, Follower, Member}
alias Mobilizon.Config
alias Mobilizon.Events.{Event, FeedToken}
alias Mobilizon.Media.File
alias Mobilizon.Users.User
alias Mobilizon.Reports.{Report, Note}
alias Mobilizon.Storage.{Page, Repo}
alias Mobilizon.Users.User
alias MobilizonWeb.Router.Helpers, as: Routes
alias MobilizonWeb.Endpoint
import Ecto.Query
import Mobilizon.Ecto
alias Mobilizon.Repo
require Logger
# @type t :: %Actor{description: String.t, id: integer(), inserted_at: DateTime.t, updated_at: DateTime.t, display_name: String.t, domain: String.t, keys: String.t, suspended: boolean(), url: String.t, username: String.t, organized_events: list(), groups: list(), group_request: list(), user: User.t, field: ActorTypeEnum.t}
@@ -383,7 +382,7 @@ defmodule Mobilizon.Actors.Actor do
)
total = Task.async(fn -> Repo.aggregate(query, :count, :id) end)
elements = Task.async(fn -> Repo.all(paginate(query, page, limit)) end)
elements = Task.async(fn -> Repo.all(Page.paginate(query, page, limit)) end)
%{total: Task.await(total), elements: Task.await(elements)}
end
@@ -428,7 +427,7 @@ defmodule Mobilizon.Actors.Actor do
)
total = Task.async(fn -> Repo.aggregate(query, :count, :id) end)
elements = Task.async(fn -> Repo.all(paginate(query, page, limit)) end)
elements = Task.async(fn -> Repo.all(Page.paginate(query, page, limit)) end)
%{total: Task.await(total), elements: Task.await(elements)}
end

View File

@@ -3,16 +3,15 @@ defmodule Mobilizon.Actors do
The Actors context.
"""
import Ecto.Query, warn: false
import Mobilizon.Ecto
import Ecto.Query
alias Mobilizon.Repo
alias Ecto.Multi
alias Mobilizon.Actors.{Actor, Bot, Member, Follower}
alias Mobilizon.Media.File
alias Ecto.Multi
alias Mobilizon.Service.ActivityPub
alias Mobilizon.Storage.{Page, Repo}
require Logger
@doc false
@@ -203,7 +202,7 @@ defmodule Mobilizon.Actors do
where: a.type == ^:Group,
where: a.visibility in [^:public, ^:unlisted]
)
|> paginate(page, limit)
|> Page.paginate(page, limit)
)
end
@@ -586,7 +585,7 @@ defmodule Mobilizon.Actors do
^username
)
)
|> paginate(page, limit)
|> Page.paginate(page, limit)
total = Task.async(fn -> Repo.aggregate(query, :count, :id) end)
elements = Task.async(fn -> Repo.all(query) end)
@@ -652,7 +651,7 @@ defmodule Mobilizon.Actors do
})
try do
Mobilizon.Repo.insert!(actor)
Repo.insert!(actor)
rescue
e in Ecto.InvalidChangesetError ->
{:error, e.changeset}

View File

@@ -12,15 +12,14 @@ defmodule Mobilizon.Actors.Member do
@moduledoc """
Represents the membership of an actor to a group
"""
use Ecto.Schema
import Ecto.Changeset
import Ecto.Query, warn: false
import Mobilizon.Ecto
import Ecto.Query
alias Mobilizon.Actors.Member
alias Mobilizon.Actors.Actor
alias Mobilizon.Repo
alias Mobilizon.Actors.{Actor, Member}
alias Mobilizon.Storage.{Page, Repo}
schema "members" do
field(:role, Mobilizon.Actors.MemberRoleEnum, default: :member)
@@ -64,7 +63,7 @@ defmodule Mobilizon.Actors.Member do
where: m.parent_id == ^id and (m.role == ^:creator or m.role == ^:administrator),
preload: [:actor]
)
|> paginate(page, limit)
|> Page.paginate(page, limit)
)
end