Implement update announcement admin api
This commit is contained in:
parent
881179ec72
commit
11a1996bf5
6 changed files with 169 additions and 26 deletions
|
|
@ -24,18 +24,20 @@ defmodule Pleroma.Announcement do
|
|||
|
||||
def change(struct, params \\ %{}) do
|
||||
struct
|
||||
|> cast(validate_params(params), [:data, :starts_at, :ends_at])
|
||||
|> cast(validate_params(struct, params), [:data, :starts_at, :ends_at])
|
||||
|> validate_required([:data])
|
||||
end
|
||||
|
||||
defp validate_params(params) do
|
||||
base_struct = %{
|
||||
"content" => "",
|
||||
"all_day" => false
|
||||
}
|
||||
defp validate_params(struct, params) do
|
||||
base_data =
|
||||
%{
|
||||
"content" => "",
|
||||
"all_day" => false
|
||||
}
|
||||
|> Map.merge((struct && struct.data) || %{})
|
||||
|
||||
merged_data =
|
||||
Map.merge(base_struct, params.data)
|
||||
Map.merge(base_data, params.data)
|
||||
|> Map.take(["content", "all_day"])
|
||||
|
||||
params
|
||||
|
|
@ -48,6 +50,12 @@ defmodule Pleroma.Announcement do
|
|||
Repo.insert(changeset)
|
||||
end
|
||||
|
||||
def update(announcement, params) do
|
||||
changeset = change(announcement, params)
|
||||
|
||||
Repo.update(changeset)
|
||||
end
|
||||
|
||||
def list_all do
|
||||
__MODULE__
|
||||
|> Repo.all()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue