2019-09-03 15:54:21 +01:00
# Pleroma: A lightweight social networking server
2020-03-03 22:44:49 +00:00
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
2019-09-03 15:54:21 +01: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 20:21:20 +01:00
" /notice " ,
2019-11-06 14:22:23 +00:00
" /api/pleroma/emoji " ,
" /api/oauth_tokens "
2019-09-03 15:54:21 +01: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