2018-12-23 20:04:54 +00:00
|
|
|
# Pleroma: A lightweight social networking server
|
2018-12-31 15:41:47 +00:00
|
|
|
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
|
2018-12-23 20:04:54 +00:00
|
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
|
2018-12-06 17:06:50 +00:00
|
|
|
defmodule Pleroma.Web.ControllerHelper do
|
|
|
|
use Pleroma.Web, :controller
|
|
|
|
|
2019-04-01 11:46:50 +00:00
|
|
|
# As in MastoAPI, per https://api.rubyonrails.org/classes/ActiveModel/Type/Boolean.html
|
|
|
|
@falsy_param_values [false, 0, "0", "f", "F", "false", "FALSE", "off", "OFF"]
|
|
|
|
def truthy_param?(nil), do: nil
|
|
|
|
def truthy_param?(value), do: value not in @falsy_param_values
|
|
|
|
|
2019-02-14 14:03:19 +00:00
|
|
|
def oauth_scopes(params, default) do
|
2019-03-05 04:37:33 +00:00
|
|
|
# Note: `scopes` is used by Mastodon — supporting it but sticking to
|
|
|
|
# OAuth's standard `scope` wherever we control it
|
2019-02-15 16:54:37 +00:00
|
|
|
Pleroma.Web.OAuth.parse_scopes(params["scope"] || params["scopes"], default)
|
2019-02-14 14:03:19 +00:00
|
|
|
end
|
|
|
|
|
2018-12-06 17:06:50 +00:00
|
|
|
def json_response(conn, status, json) do
|
|
|
|
conn
|
|
|
|
|> put_status(status)
|
|
|
|
|> json(json)
|
|
|
|
end
|
|
|
|
end
|