From 9e2367cebc97e7e5e1b762476d1f42c197537d2d Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 20 Nov 2023 12:09:43 +0200 Subject: [PATCH] Fix the logic for issuing promo codes for submitted twitter handles (#3988) --- .../monitored_twitter_handle.ex | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/lib/sanbase/monitored_twitter_handle/monitored_twitter_handle.ex b/lib/sanbase/monitored_twitter_handle/monitored_twitter_handle.ex index e8b8fed190..ef8b766e29 100644 --- a/lib/sanbase/monitored_twitter_handle/monitored_twitter_handle.ex +++ b/lib/sanbase/monitored_twitter_handle/monitored_twitter_handle.ex @@ -128,20 +128,21 @@ defmodule Sanbase.MonitoredTwitterHandle do # This includes all used and unused promo codes for that campaign. codes_count = length(codes) - cond do - records_count >= 7 and codes_count <= 1 -> - create_user_promo_code(user_id, 27) - - records_count >= 3 and codes_count == 0 -> - create_user_promo_code(user_id, 54) + # Run the creation in 2 ifs so in case of re-issuing of promo codes, + # we create all the necessary promo codes on one run + if records_count >= 3 and codes_count == 0 do + create_user_promo_code_for_campaign(user_id, 27) + end - true -> - :ok + if records_count >= 7 and codes_count == 1 do + create_user_promo_code_for_campaign(user_id, 54) end + + :ok end end - defp create_user_promo_code(user_id, percent_off) do + defp create_user_promo_code_for_campaign(user_id, percent_off) do redeem_by = DateTime.utc_now() |> DateTime.add(30, :day) |> DateTime.truncate(:second) {:ok, coupon} =