2019-09-03 08:54:21 -06:00
# Pleroma: A lightweight social networking server
2020-03-03 15:44:49 -07:00
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
2019-09-03 08:54:21 -06:00
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Plugs.TrailingFormatPlug do
@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 13:21:20 -06:00
" /notice " ,
2019-11-06 07:22:23 -07:00
" /api/pleroma/emoji " ,
" /api/oauth_tokens "
2019-09-03 08:54:21 -06: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