Skip to content

Commit 02cba82

Browse files
author
Alexey Novichikhin
committed
update embedded links
1 parent 39efeb3 commit 02cba82

7 files changed

Lines changed: 70 additions & 37 deletions

File tree

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using System;
2+
3+
namespace MyJetWallet.DynamicLinkGenerator.Models;
4+
5+
public enum ActionEmbeddedEnum
6+
{
7+
EmbeddedOperationHistory = 1,
8+
}
9+
10+
public static class EmbeddedActionExtensions
11+
{
12+
public static string GetString(this ActionEmbeddedEnum actionEnum) =>
13+
actionEnum switch
14+
{
15+
ActionEmbeddedEnum.EmbeddedOperationHistory => "sc_history",
16+
17+
_ => throw new ArgumentOutOfRangeException(nameof(actionEnum), actionEnum, null)
18+
};
19+
}

src/MyJetWallet.DynamicLinkGenerator/Models/ActionEnum.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ public enum ActionEnum
3939
P2PMethodAvailable,
4040
CardHistory,
4141
ConfirmEmailNonCustodial,
42+
43+
4244
}
4345

4446
public static class ActionExtensions
@@ -86,6 +88,7 @@ public static string GetString(this ActionEnum actionEnum) =>
8688
ActionEnum.P2PMethodAvailable => "jw_p2p_method_available",
8789
ActionEnum.CardHistory => "crypto_card_history",
8890
ActionEnum.ConfirmEmailNonCustodial => "sc_ConfirmEmail",
91+
8992
_ => throw new ArgumentOutOfRangeException(nameof(actionEnum), actionEnum, null)
9093
};
9194
}

src/MyJetWallet.DynamicLinkGenerator/Services/ActionUrlClient.cs

Lines changed: 0 additions & 32 deletions
This file was deleted.

src/MyJetWallet.DynamicLinkGenerator/Services/DynamicLinkClient.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ public DynamicLinkClient(IMyNoSqlServerDataReader<DynamicLinkSettingsNoSql> read
4141
public (string longLink, string shortLink) GenerateKycDocumentsApprovedLink(KycDocsApprovedLinkRequest request) => GenerateDeepLink(ActionEnum.KycDocumentsApproved, request.Platform);
4242
public (string longLink, string shortLink) GenerateKycBannedLink(KycBannedLinkRequest request) => GenerateDeepLink(ActionEnum.KycBanned, request.Platform);
4343
public (string longLink, string shortLink) GenerateOperationHistoryLink(OperationHistoryLinkRequest request) => GenerateDeepLink(ActionEnum.OperationHistory, request.Platform, ("jw_operation_id", request.OperationId));
44-
public (string longLink, string shortLink) GenerateEmbeddedOperationHistoryLink(OperationEmbeddedHistoryLinkRequest request) => GenerateDeepLink(ActionEnum.OperationHistory, request.Platform, ("jw_operation_id", request.OperationId), ("jw_accountID", request.AccountId));
4544
public (string longLink, string shortLink) GenerateWithdrawalDeclinedLink(WithdrawalDeclinedLinkRequest request) => GenerateDeepLink(ActionEnum.WithdrawalDecline, request.Platform, ("jw_asset", request.Asset));
4645
public (string longLink, string shortLink) GenerateGiftIncomingLink(OperationLinkRequest request) => GenerateDeepLink(ActionEnum.GiftIncoming, request.Platform, ("jw_operation_id", request.OperationId));
4746
public (string longLink, string shortLink) GenerateGiftReminderLink(OperationLinkRequest request) => GenerateDeepLink(ActionEnum.GiftReminder, request.Platform, ("jw_operation_id", request.OperationId));
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
using System;
2+
using System.Web;
3+
using MyJetWallet.Domain;
4+
using MyJetWallet.DynamicLinkGenerator.Models;
5+
using MyJetWallet.DynamicLinkGenerator.NoSql;
6+
using MyNoSqlServer.Abstractions;
7+
8+
namespace MyJetWallet.DynamicLinkGenerator.Services;
9+
10+
public class EmbeddedDynamicLinkClient : IEmbeddedDynamicLinkClient
11+
{
12+
public (string longLink, string shortLink) GenerateEmbeddedOperationHistoryLink(string accountId, string historyId)
13+
=> GenerateDeepLink(ActionEmbeddedEnum.EmbeddedOperationHistory, ("jw_account_id", accountId), ("jw_history_id", historyId));
14+
15+
16+
#region technical methods
17+
private readonly IMyNoSqlServerDataReader<DynamicLinkSettingsNoSql> _reader;
18+
19+
public EmbeddedDynamicLinkClient(IMyNoSqlServerDataReader<DynamicLinkSettingsNoSql> reader)
20+
{
21+
_reader = reader;
22+
}
23+
24+
private (string longLink, string shortLink) GenerateDeepLink(ActionEmbeddedEnum action, params(string, string)[] paramsArray)
25+
{
26+
var parameters = _reader.Get(DynamicLinkSettingsNoSql.GeneratePartitionKey(),
27+
DynamicLinkSettingsNoSql.GenerateRowKey(PlatformType.Embedded));
28+
29+
if (parameters == null)
30+
throw new ArgumentException($"Unable to get link parameters for platform {PlatformType.Embedded}");
31+
32+
var deepLink = $"{parameters.DomainUriPrefix}/action/{action.GetString()}";
33+
foreach (var (name, value) in paramsArray)
34+
deepLink = $"{deepLink}/{name}/{value}";
35+
36+
var link = $"{parameters.BaseLink}?af_xp={parameters.AfXp}&pid={parameters.Pid}&c={parameters.C}&deep_link_value={HttpUtility.UrlEncode(deepLink)}";
37+
return (link, deepLink);
38+
}
39+
#endregion
40+
}

src/MyJetWallet.DynamicLinkGenerator/Services/IDynamicLinkClient.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,4 @@ public interface IDynamicLinkClient
3737
public (string longLink, string shortLink) GenerateUnfinishedOpLink(UnfinishedOpRequest request);
3838
public (string longLink, string shortLink) GenerateP2PMethodAvailableLink(P2PMethodAvailableLinkRequest linkRequest);
3939
public (string longLink, string shortLink) GenerateCardHistoryLink(CardHistoryLinkRequest request);
40-
41-
public (string longLink, string shortLink) GenerateEmbeddedOperationHistoryLink(
42-
OperationEmbeddedHistoryLinkRequest request);
43-
4440
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
using MyJetWallet.DynamicLinkGenerator.Models;
2+
3+
namespace MyJetWallet.DynamicLinkGenerator.Services;
4+
5+
public interface IEmbeddedDynamicLinkClient
6+
{
7+
public (string longLink, string shortLink) GenerateEmbeddedOperationHistoryLink(string accountId, string historyId);
8+
}

0 commit comments

Comments
 (0)