Ver código fonte

Pleroma.Web.ControllerHelper.truthy_param?/1 --> Pleroma.Web.Params.truthy_param?/1

Breaks cycle in lib/pleroma/web/api_spec/operations/status_operation.ex
cycles-validator
Alex Gleason Mark Felder 3 anos atrás
pai
commit
0877b120c3
7 arquivos alterados com 27 adições e 21 exclusões
  1. +1
    -1
      lib/pleroma/web/api_spec/schemas/boolean_like.ex
  2. +1
    -1
      lib/pleroma/web/common_api/activity_draft.ex
  3. +3
    -3
      lib/pleroma/web/common_api/utils.ex
  4. +2
    -12
      lib/pleroma/web/controller_helper.ex
  5. +2
    -2
      lib/pleroma/web/mastodon_api/controllers/account_controller.ex
  6. +2
    -2
      lib/pleroma/web/o_auth/o_auth_controller.ex
  7. +16
    -0
      lib/pleroma/web/params.ex

+ 1
- 1
lib/pleroma/web/api_spec/schemas/boolean_like.ex Ver arquivo

@@ -34,7 +34,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.BooleanLike do

def cast(%Cast{value: value} = context) do
context
|> Map.put(:value, Pleroma.Web.ControllerHelper.truthy_param?(value))
|> Map.put(:value, Pleroma.Web.Params.truthy_param?(value))
|> Cast.ok()
end
end

+ 1
- 1
lib/pleroma/web/common_api/activity_draft.ex Ver arquivo

@@ -223,7 +223,7 @@ defmodule Pleroma.Web.CommonAPI.ActivityDraft do
end

defp preview?(draft) do
preview? = Pleroma.Web.ControllerHelper.truthy_param?(draft.params[:preview])
preview? = Pleroma.Web.Params.truthy_param?(draft.params[:preview])
%__MODULE__{draft | preview?: preview?}
end



+ 3
- 3
lib/pleroma/web/common_api/utils.ex Ver arquivo

@@ -4,7 +4,6 @@

defmodule Pleroma.Web.CommonAPI.Utils do
import Pleroma.Web.Gettext
import Pleroma.Web.ControllerHelper, only: [truthy_param?: 1]

alias Calendar.Strftime
alias Pleroma.Activity
@@ -18,6 +17,7 @@ defmodule Pleroma.Web.CommonAPI.Utils do
alias Pleroma.Web.ActivityPub.Visibility
alias Pleroma.Web.CommonAPI.ActivityDraft
alias Pleroma.Web.MediaProxy
alias Pleroma.Web.Params
alias Pleroma.Web.Plugs.AuthenticationPlug

require Logger
@@ -160,7 +160,7 @@ defmodule Pleroma.Web.CommonAPI.Utils do
|> DateTime.add(expires_in)
|> DateTime.to_iso8601()

key = if truthy_param?(data.poll[:multiple]), do: "anyOf", else: "oneOf"
key = if Params.truthy_param?(data.poll[:multiple]), do: "anyOf", else: "oneOf"
poll = %{"type" => "Question", key => option_notes, "closed" => end_time}

{:ok, {poll, emoji}}
@@ -203,7 +203,7 @@ defmodule Pleroma.Web.CommonAPI.Utils do
attachment_links =
draft.params
|> Map.get("attachment_links", Config.get([:instance, :attachment_links]))
|> truthy_param?()
|> Params.truthy_param?()

content_type = get_content_type(draft.params[:content_type])



+ 2
- 12
lib/pleroma/web/controller_helper.ex Ver arquivo

@@ -6,17 +6,7 @@ defmodule Pleroma.Web.ControllerHelper do
use Pleroma.Web, :controller

alias Pleroma.Pagination

# As in Mastodon API, per https://api.rubyonrails.org/classes/ActiveModel/Type/Boolean.html
@falsy_param_values [false, 0, "0", "f", "F", "false", "False", "FALSE", "off", "OFF"]

def explicitly_falsy_param?(value), do: value in @falsy_param_values

# Note: `nil` and `""` are considered falsy values in Pleroma
def falsy_param?(value),
do: explicitly_falsy_param?(value) or value in [nil, ""]

def truthy_param?(value), do: not falsy_param?(value)
alias Pleroma.Web.Params

def json_response(conn, status, _) when status in [204, :no_content] do
conn
@@ -123,6 +113,6 @@ defmodule Pleroma.Web.ControllerHelper do
# To do once OpenAPI transition mess is over: just `truthy_param?(params[:with_relationships])`
params
|> Map.get(:with_relationships, params["with_relationships"])
|> truthy_param?()
|> Params.truthy_param?()
end
end

+ 2
- 2
lib/pleroma/web/mastodon_api/controllers/account_controller.ex Ver arquivo

@@ -8,7 +8,6 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do
import Pleroma.Web.ControllerHelper,
only: [
add_link_headers: 2,
truthy_param?: 1,
assign_account_by_id: 2,
embed_relationships?: 1,
json_response: 3
@@ -25,6 +24,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do
alias Pleroma.Web.MastodonAPI.MastodonAPIController
alias Pleroma.Web.MastodonAPI.StatusView
alias Pleroma.Web.OAuth.OAuthController
alias Pleroma.Web.Params
alias Pleroma.Web.Plugs.EnsurePublicOrAuthenticatedPlug
alias Pleroma.Web.Plugs.OAuthScopesPlug
alias Pleroma.Web.Plugs.RateLimiter
@@ -188,7 +188,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do
:accepts_chat_messages
]
|> Enum.reduce(%{}, fn key, acc ->
Maps.put_if_present(acc, key, params[key], &{:ok, truthy_param?(&1)})
Maps.put_if_present(acc, key, params[key], &{:ok, Params.truthy_param?(&1)})
end)
|> Maps.put_if_present(:name, params[:display_name])
|> Maps.put_if_present(:bio, params[:note])


+ 2
- 2
lib/pleroma/web/o_auth/o_auth_controller.ex Ver arquivo

@@ -13,7 +13,6 @@ defmodule Pleroma.Web.OAuth.OAuthController do
alias Pleroma.Repo
alias Pleroma.User
alias Pleroma.Web.Auth.WrapperAuthenticator, as: Authenticator
alias Pleroma.Web.ControllerHelper
alias Pleroma.Web.OAuth.App
alias Pleroma.Web.OAuth.Authorization
alias Pleroma.Web.OAuth.MFAController
@@ -23,6 +22,7 @@ defmodule Pleroma.Web.OAuth.OAuthController do
alias Pleroma.Web.OAuth.Token
alias Pleroma.Web.OAuth.Token.Strategy.RefreshToken
alias Pleroma.Web.OAuth.Token.Strategy.Revoke, as: RevokeToken
alias Pleroma.Web.Params
alias Pleroma.Web.Plugs.RateLimiter

require Logger
@@ -50,7 +50,7 @@ defmodule Pleroma.Web.OAuth.OAuthController do
end

def authorize(%Plug.Conn{assigns: %{token: %Token{}}} = conn, %{"force_login" => _} = params) do
if ControllerHelper.truthy_param?(params["force_login"]) do
if Params.truthy_param?(params["force_login"]) do
do_authorize(conn, params)
else
handle_existing_authorization(conn, params)


+ 16
- 0
lib/pleroma/web/params.ex Ver arquivo

@@ -0,0 +1,16 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only

defmodule Pleroma.Web.Params do
# As in Mastodon API, per https://api.rubyonrails.org/classes/ActiveModel/Type/Boolean.html
@falsy_param_values [false, 0, "0", "f", "F", "false", "False", "FALSE", "off", "OFF"]

defp explicitly_falsy_param?(value), do: value in @falsy_param_values

# Note: `nil` and `""` are considered falsy values in Pleroma
defp falsy_param?(value),
do: explicitly_falsy_param?(value) or value in [nil, ""]

def truthy_param?(value), do: not falsy_param?(value)
end

Carregando…
Cancelar
Salvar