2019-09-03 14:54:21 +00:00
# Pleroma: A lightweight social networking server
2023-01-02 20:38:50 +00:00
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
2019-09-03 14:54:21 +00:00
# SPDX-License-Identifier: AGPL-3.0-only
2020-06-24 06:05:23 +00:00
defmodule Pleroma.Web.Plugs.TrailingFormatPlug do
2019-09-03 14:54:21 +00:00
@moduledoc " Calls TrailingFormatPlug for specific paths. Ideally we would just do this in the router, but TrailingFormatPlug needs to be called before Plug.Parsers. "
@behaviour Plug
@paths [
" /api/statusnet " ,
" /api/statuses " ,
" /api/qvitter " ,
" /api/search " ,
" /api/account " ,
" /api/friends " ,
" /api/mutes " ,
" /api/media " ,
" /api/favorites " ,
" /api/blocks " ,
" /api/friendships " ,
" /api/users " ,
" /users " ,
" /nodeinfo " ,
" /api/help " ,
" /api/externalprofile " ,
2019-09-05 19:21:20 +00:00
" /notice " ,
2019-11-06 14:22:23 +00:00
" /api/pleroma/emoji " ,
" /api/oauth_tokens "
2019-09-03 14:54:21 +00:00
]
def init ( opts ) do
TrailingFormatPlug . init ( opts )
end
for path <- @paths do
def call ( %{ request_path : unquote ( path ) <> _ } = conn , opts ) do
TrailingFormatPlug . call ( conn , opts )
end
end
def call ( conn , _opts ) , do : conn
end