From 90c4bed0af40911e0f8a28743814e4c07e91e9ae Mon Sep 17 00:00:00 2001 From: lain Date: Fri, 4 May 2018 21:15:39 +0200 Subject: [PATCH] Don't expire idempotency cache for five minutes. --- lib/pleroma/web/mastodon_api/mastodon_api_controller.ex | 2 ++ test/web/mastodon_api/mastodon_api_controller_test.exs | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index e2243538a..bbd16482a 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex @@ -288,6 +288,8 @@ def post_status(%{assigns: %{user: user}} = conn, %{"status" => _} = params) do fallback: fn _ -> CommonAPI.post(user, params) end ) + Cachex.expire(:user_cache, "idem:#{idempotency_key}", :timer.seconds(5 * 60)) + render(conn, StatusView, "status.json", %{activity: activity, for: user, as: :activity}) end diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs index 432dca28a..69a0299ac 100644 --- a/test/web/mastodon_api/mastodon_api_controller_test.exs +++ b/test/web/mastodon_api/mastodon_api_controller_test.exs @@ -75,6 +75,10 @@ test "posting a status", %{conn: conn} do "sensitive" => "false" }) + {:ok, ttl} = Cachex.ttl(:user_cache, "idem:#{idempotency_key}") + # 5 Minutes + assert ttl > :timer.seconds(5 * 60 - 1) + assert %{"content" => "cofe", "id" => id, "spoiler_text" => "2hu", "sensitive" => false} = json_response(conn_one, 200)