Skip to content

Commit

Permalink
change fraud list management
Browse files Browse the repository at this point in the history
  • Loading branch information
tuncaserhat committed Dec 28, 2023
1 parent 1a9b528 commit 44fca29
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 26 deletions.
40 changes: 20 additions & 20 deletions Craftgate/Adapter/FraudAdapter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,14 +73,26 @@ public Task<FraudValueListResponse> RetrieveValueListAsync(string listName)
CreateHeaders(path, RequestOptions));
}

public void CreateValueList(string listName)
public void CreateValueList(string listName, FraudValueType type)
{
AddValueToValueList(listName, null, null);
AddValueToValueList(new FraudValueListRequest
{
ListName = listName,
Type = type,
Value = null,
DurationInSeconds = null
});
}

public Task CreateValueListAsync(string listName)
public Task CreateValueListAsync(string listName, FraudValueType type)
{
return AddValueToValueListAsync(listName, null, null);
return AddValueToValueListAsync(new FraudValueListRequest
{
ListName = listName,
Type = type,
Value = null,
DurationInSeconds = null
});
}

public void DeleteValueList(string listName)
Expand All @@ -97,28 +109,16 @@ public Task DeleteValueListAsync(string listName)
CreateHeaders(path, RequestOptions));
}

public void AddValueToValueList(string listName, string value, int? expireInSeconds)
public void AddValueToValueList(FraudValueListRequest request)
{
const string path = "/fraud/v1/value-lists";
var request = new FraudValueListRequest
{
ListName = listName,
Value = value,
DurationInSeconds = expireInSeconds
};
RestClient.Post<object>(RequestOptions.BaseUrl + path,
CreateHeaders(request, path, RequestOptions), request);
}

public Task AddValueToValueListAsync(string listName, string value, int? expireInSeconds)
public Task AddValueToValueListAsync(FraudValueListRequest request)
{
const string path = "/fraud/v1/value-lists";
var request = new FraudValueListRequest
{
ListName = listName,
Value = value,
DurationInSeconds = expireInSeconds
};
return AsyncRestClient.Post<object>(RequestOptions.BaseUrl + path,
CreateHeaders(request, path, RequestOptions), request);
}
Expand All @@ -130,9 +130,9 @@ public void RemoveValueFromValueList(string listName, string value)
CreateHeaders(path, RequestOptions));
}

public Task RemoveValueFromValueListAsync(string listName, string value)
public Task RemoveValueFromValueListAsync(string listName, string valueId)
{
var path = "/fraud/v1/value-lists/" + listName + "/values/" + value;
var path = "/fraud/v1/value-lists/" + listName + "/values/" + valueId;
return AsyncRestClient.Delete<object>(RequestOptions.BaseUrl + path,
CreateHeaders(path, RequestOptions));
}
Expand Down
14 changes: 14 additions & 0 deletions Craftgate/Model/FraudValueType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System.Runtime.Serialization;

namespace Craftgate.Model
{
public enum FraudValueType
{
[EnumMember(Value = "CARD")] CARD,
[EnumMember(Value = "IP")] IP,
[EnumMember(Value = "PHONE_NUMBER")] PHONE_NUMBER,
[EnumMember(Value = "EMAIL")] EMAIL,
[EnumMember(Value = "OTHER")] OTHER

}
}
3 changes: 3 additions & 0 deletions Craftgate/Request/FraudValueListRequest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@ namespace Craftgate.Request
public class FraudValueListRequest
{
public string ListName { get; set; }
public FraudValueType Type { get; set; }
public string Label { get; set; }
public string Value { get; set; }
public int? DurationInSeconds { get; set; }
public long? PaymentId { get; set; }
}
}
2 changes: 0 additions & 2 deletions Craftgate/Response/Dto/FraudPaymentData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ public class FraudPaymentData
public string ConversationId { get; set; }
public decimal PaidPrice { get; set; }
public string Currency { get; set; }
public string CardFingerprintId { get; set; }
public DateTime CardFingerprintExpirationDate { get; set; }
public long? BuyerId { get; set; }
public string ClientIp { get; set; }
}
Expand Down
2 changes: 2 additions & 0 deletions Craftgate/Response/Dto/FraudValue.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ namespace Craftgate.Response.Dto
{
public class FraudValue
{
public string Id { get; set; }
public string Label { get; set; }
public string Value { get; set; }
public int? ExpireInSeconds { get; set; }
}
Expand Down
39 changes: 35 additions & 4 deletions Samples/FraudSample.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,25 +62,56 @@ public void Retrieve_All_Fraud_Value_Lists()
[Test]
public void Create_Fraud_Value_List()
{
_craftgateClient.Fraud().CreateValueList("ipList");
_craftgateClient.Fraud().CreateValueList("ipList", FraudValueType.IP);
}

[Test]
public void Add_Value_To_Fraud_Value_List()
{
_craftgateClient.Fraud().AddValueToValueList("ipList", "127.0.0.1", null);
var request = new FraudValueListRequest
{
ListName = "ipList",
Type = FraudValueType.IP,
Label = "local ip 1",
Value = "127.0.0.1"
};

_craftgateClient.Fraud().AddValueToValueList(request);
}

[Test]
public void Add_CardFingerprint_To_Fraud_Value_List()
{
var request = new FraudValueListRequest
{
ListName = "cardList",
Type = FraudValueType.CARD,
Label = "John Doe's Card",
PaymentId = 11675L
};

_craftgateClient.Fraud().AddValueToValueList(request);
}

[Test]
public void Add_Temporary_Value_To_Fraud_Value_List()
{
_craftgateClient.Fraud().AddValueToValueList("ipList", "127.0.0.2", 60);
var request = new FraudValueListRequest
{
ListName = "ipList",
Type = FraudValueType.IP,
Label = "local ip 2",
Value = "127.0.0.2",
DurationInSeconds = 60
};

_craftgateClient.Fraud().AddValueToValueList(request);
}

[Test]
public void Remove_Value_From_Fraud_Value_List()
{
_craftgateClient.Fraud().RemoveValueFromValueList("ipList", "127.0.0.2");
_craftgateClient.Fraud().RemoveValueFromValueList("ipList", "9bf6d4de-59ee-48c1-8404-374999ab1a4e");
}

[Test]
Expand Down

0 comments on commit 44fca29

Please sign in to comment.