Skip to content

Commit

Permalink
Merge branch 'master' of git://github.com/OpenMAVN/MAVN.Service.Custo…
Browse files Browse the repository at this point in the history
…merProfile
  • Loading branch information
IliyanIlievPH committed Jun 1, 2020
2 parents a1c7c46 + 53ffd19 commit e610558
Show file tree
Hide file tree
Showing 56 changed files with 1,780 additions and 96 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Threading.Tasks;
using MAVN.Service.CustomerProfile.Client.Models.Enums;
using MAVN.Service.CustomerProfile.Client.Models.Requests;
using MAVN.Service.CustomerProfile.Client.Models.Responses;
using Microsoft.AspNetCore.Mvc;
using Refit;

namespace MAVN.Service.CustomerProfile.Client.Api
{
/// <summary>
/// PaymentProviderDetails API
/// </summary>
public interface IPaymentProviderDetailsApi
{
/// <summary>
/// Creates payment provider details
/// </summary>
/// <returns><see cref="PaymentProviderDetailsErrorCodes"/></returns>
[Post("/api/paymentProviderDetails")]
Task<PaymentProviderDetailsErrorCodes> CreateAsync([Body] CreatePaymentProviderDetailsRequest request);

/// <summary>
/// Updates payment provider details
/// </summary>
/// <returns><see cref="PaymentProviderDetailsErrorCodes"/></returns>
[Put("/api/paymentProviderDetails")]
[ProducesResponseType(typeof(PaymentProviderDetailsErrorCodes), (int) HttpStatusCode.OK)]
Task<PaymentProviderDetailsErrorCodes> UpdateAsync([Body] EditPaymentProviderDetailsRequest request);

/// <summary>
/// Deletes payment provider details
/// </summary>
/// <returns><see cref="PaymentProviderDetailsErrorCodes"/></returns>
[Delete("/api/paymentProviderDetails/{id}")]
Task<PaymentProviderDetailsErrorCodes> DeleteAsync(Guid id);

/// <summary>
/// Returns all payment provider details for specific partner
/// </summary>
/// <returns><see cref="IReadOnlyList{T}<PaymentProviderDetails>"/></returns>
[Get("/api/paymentProviderDetails/{partnerId}")]
Task<IReadOnlyList<PaymentProviderDetails>> GetListByPartnerIdAsync([FromRoute] Guid partnerId);

/// <summary>
/// Returns all payment provider details for specific partner
/// </summary>
/// <returns><see cref="GetByPartnerIdAndPaymentProviderResponse"/></returns>
[Get("/api/paymentProviderDetails")]
Task<GetByPartnerIdAndPaymentProviderResponse> GetByPartnerIdAndPaymentProviderAsync([Query]Guid partnerId,
[Query]string paymentProvider);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using Lykke.HttpClientGenerator;
using Lykke.HttpClientGenerator;
using MAVN.Service.CustomerProfile.Client.Api;

namespace MAVN.Service.CustomerProfile.Client
Expand All @@ -19,6 +19,7 @@ public CustomerProfileClient(IHttpClientGenerator httpClientGenerator)
ReferralFriendProfiles = httpClientGenerator.Generate<IReferralFriendProfilesApi>();
Statistics = httpClientGenerator.Generate<IStatisticsApi>();
CustomerPhones = httpClientGenerator.Generate<ICustomerPhonesApi>();
PaymentProviderDetails = httpClientGenerator.Generate<IPaymentProviderDetailsApi>();
}

/// <inheritdoc/>
Expand All @@ -44,5 +45,8 @@ public CustomerProfileClient(IHttpClientGenerator httpClientGenerator)

/// <inheritdoc/>
public ICustomerPhonesApi CustomerPhones { get; }

/// <inheritdoc/>
public IPaymentProviderDetailsApi PaymentProviderDetails { get; }
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using JetBrains.Annotations;
using JetBrains.Annotations;
using MAVN.Service.CustomerProfile.Client.Api;

namespace MAVN.Service.CustomerProfile.Client
Expand Down Expand Up @@ -48,5 +48,10 @@ public interface ICustomerProfileClient
/// CustomerPhones API.
/// </summary>
ICustomerPhonesApi CustomerPhones { get; }

/// <summary>
/// PaymentProviderDetails API.
/// </summary>
IPaymentProviderDetailsApi PaymentProviderDetails { get; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
using JetBrains.Annotations;

namespace MAVN.Service.CustomerProfile.Client.Models.Enums
{
/// <summary>
/// Enumeration that holds error codes for payment provider details operations
/// </summary>
[PublicAPI]
public enum PaymentProviderDetailsErrorCodes
{
/// <summary>
/// No errors
/// </summary>
None,
/// <summary>
/// Payment provider details does not exist
/// </summary>
PaymentProviderDetailsDoesNotExist,
/// <summary>
/// There is already existing unique pair for this partner and provider
/// </summary>
PaymentProviderDetailsAlreadyExists
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
using System;
using System.ComponentModel.DataAnnotations;
using JetBrains.Annotations;

namespace MAVN.Service.CustomerProfile.Client.Models.Requests
{
/// <summary>
/// Request model to create payment provider details
/// </summary>
[PublicAPI]
public class CreatePaymentProviderDetailsRequest
{
/// <summary>
/// The id of the partner
/// </summary>
[Required]
public Guid PartnerId { get; set; }

/// <summary>
/// the payment provider used
/// </summary>
[Required]
public string PaymentIntegrationProvider { get; set; }

/// <summary>
/// Configuration properties for the payment provider (json)
/// </summary>
[Required]
public string PaymentIntegrationProperties { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
using System;
using System.ComponentModel.DataAnnotations;
using JetBrains.Annotations;

namespace MAVN.Service.CustomerProfile.Client.Models.Requests
{
/// <summary>
/// Edit request model
/// </summary>
[PublicAPI]
public class EditPaymentProviderDetailsRequest : CreatePaymentProviderDetailsRequest
{
/// <summary>
/// Id of the details model
/// </summary>
[Required]
public Guid Id { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
using JetBrains.Annotations;
using MAVN.Service.CustomerProfile.Client.Models.Enums;

namespace MAVN.Service.CustomerProfile.Client.Models.Responses
{
/// <summary>
/// Response model
/// </summary>
[PublicAPI]
public class GetByPartnerIdAndPaymentProviderResponse
{
/// <summary>
/// Payment provider information
/// </summary>
public PaymentProviderDetails PaymentProviderDetails { get; set; }

/// <summary>
/// Error
/// </summary>
public PaymentProviderDetailsErrorCodes ErrorCode { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
using System;
using JetBrains.Annotations;

namespace MAVN.Service.CustomerProfile.Client.Models.Responses
{
/// <summary>
/// Holds payment provider details
/// </summary>
[PublicAPI]
public class PaymentProviderDetails
{
/// <summary>
/// Id of the details
/// </summary>
public Guid Id { get; set; }

/// <summary>
/// Id of the partner
/// </summary>
public Guid PartnerId { get; set; }

/// <summary>
/// Name of the payment provider
/// </summary>
public string PaymentIntegrationProvider { get; set; }

/// <summary>
/// Payment integration properties for the provider
/// </summary>
public string PaymentIntegrationProperties { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace MAVN.Service.CustomerProfile.Domain.Enums
{
public enum PaymentProviderDetailsErrorCodes
{
None,
PaymentProviderDetailsDoesNotExist,
PaymentProviderDetailsAlreadyExists
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Lykke.Common" Version="7.5.0" />
<PackageReference Include="Lykke.Common.MsSql" Version="2.3.0" />
<PackageReference Include="MAVN.Common.MsSql" Version="3.0.0" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using System;

namespace MAVN.Service.CustomerProfile.Domain.Models
{
public interface IPaymentProviderDetails
{
Guid Id { get; set; }

Guid PartnerId { get; set; }

string PaymentIntegrationProvider { get; set; }

string PaymentIntegrationProperties { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Lykke.Common.MsSql;
using MAVN.Common.MsSql;
using MAVN.Service.CustomerProfile.Domain.Enums;
using MAVN.Service.CustomerProfile.Domain.Models;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using MAVN.Service.CustomerProfile.Domain.Models;

namespace MAVN.Service.CustomerProfile.Domain.Repositories
{
public interface IPaymentProviderDetailsRepository
{
Task CreateAsync(IPaymentProviderDetails model);
Task<bool> UpdateAsync(IPaymentProviderDetails model);
Task<bool> DeleteAsync(Guid id);
Task<IReadOnlyList<IPaymentProviderDetails>> GetListByPartnerIdAsync(Guid partnerId);
Task<IPaymentProviderDetails> GetByPartnerIdAndProviderAsync(Guid partnerId, string paymentProvider);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using MAVN.Service.CustomerProfile.Domain.Enums;
using MAVN.Service.CustomerProfile.Domain.Models;

namespace MAVN.Service.CustomerProfile.Domain.Services
{
public interface IPaymentProviderDetailsService
{
Task<PaymentProviderDetailsErrorCodes> CreateAsync(IPaymentProviderDetails model);
Task<PaymentProviderDetailsErrorCodes> UpdateAsync(IPaymentProviderDetails model);
Task<PaymentProviderDetailsErrorCodes> DeleteAsync(Guid id);
Task<IReadOnlyList<IPaymentProviderDetails>> GetListByPartnerIdAsync(Guid partnerId);
Task<IPaymentProviderDetails> GetByPartnerIdAndPaymentProviderAsync(Guid partnerId, string paymentProvider);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@
using System.Threading.Tasks;
using Common;
using Common.Log;
using Falcon.Common;
using MAVN.Common;
using Lykke.Common.Log;
using Lykke.Common.MsSql;
using MAVN.Common.MsSql;
using Lykke.RabbitMqBroker.Publisher;
using MAVN.Service.CustomerProfile.Contract;
using MAVN.Service.CustomerProfile.Domain.Enums;
using MAVN.Service.CustomerProfile.Domain.Models;
using MAVN.Service.CustomerProfile.Domain.Repositories;
using MAVN.Service.CustomerProfile.Domain.Services;
using Lykke.Service.Dictionaries.Client;
using MAVN.Service.Dictionaries.Client;

namespace MAVN.Service.CustomerProfile.DomainServices
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@
<ProjectReference Include="..\MAVN.Service.CustomerProfile.Domain\MAVN.Service.CustomerProfile.Domain.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Falcon.Common" Version="0.2.2" />
<PackageReference Include="Falcon.Service.CustomerManagement.Contract" Version="6.0.0" />
<PackageReference Include="Falcon.Service.Dictionaries.Client" Version="1.3.0" />
<PackageReference Include="Falcon.Service.PrivateBlockchainFacade.Contract" Version="2.13.0" />
<PackageReference Include="Falcon.Service.Tiers.Contract" Version="1.0.0" />
<PackageReference Include="Lykke.Common.MsSql" Version="2.3.0" />
<PackageReference Include="Lykke.RabbitMqBroker" Version="7.13.1" />
<PackageReference Include="Lykke.Sdk" Version="5.17.0" />
<PackageReference Include="MAVN.Common" Version="1.0.0" />
<PackageReference Include="MAVN.Common.MsSql" Version="3.0.0" />
<PackageReference Include="MAVN.Service.AdminManagement.Contract" Version="1.1.1" />
<PackageReference Include="MAVN.Service.CustomerManagement.Contract" Version="1.1.0" />
<PackageReference Include="MAVN.Service.Dictionaries.Client" Version="1.0.1" />
<PackageReference Include="MAVN.Service.PrivateBlockchainFacade.Contract" Version="1.1.0" />
<PackageReference Include="MAVN.Service.Tiers.Contract" Version="1.0.1" />
</ItemGroup>
</Project>
Loading

0 comments on commit e610558

Please sign in to comment.