Example #1
0
        public async Task <IActionResult> UpdateAsync([FromBody] UpdateMerchantRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ErrorResponse().AddErrors(ModelState)));
            }

            try
            {
                var merchant = Mapper.Map <Merchant>(request);

                await _merchantService.UpdateAsync(merchant);
            }
            catch (MerchantNotFoundException exception)
            {
                await _log.WriteWarningAsync(nameof(MerchantsController), nameof(UpdateAsync),
                                             request.ToJson(), exception.Message);

                return(NotFound(ErrorResponse.Create(exception.Message)));
            }
            catch (Exception exception)
            {
                await _log.WriteErrorAsync(nameof(MerchantsController), nameof(UpdateAsync), request.ToJson(), exception);

                throw;
            }

            return(NoContent());
        }
        public async Task <IActionResult> UpdateAsync([FromBody] UpdateMerchantRequest request)
        {
            try
            {
                var merchant = Mapper.Map <Merchant>(request);

                await _merchantService.UpdateAsync(merchant);

                return(NoContent());
            }
            catch (InvalidRowKeyValueException e)
            {
                _log.Error(e, $"{e.Variable}: {e.Value}");

                return(BadRequest(ErrorResponse.Create(e.Message)));
            }
            catch (MerchantNotFoundException e)
            {
                _log.Warning(e.Message, request.ToDetails());

                return(NotFound(ErrorResponse.Create(e.Message)));
            }
            catch (DuplicateMerchantApiKeyException e)
            {
                _log.Error(e, request.ToDetails());

                return(BadRequest(ErrorResponse.Create(e.Message)));
            }
            catch (DuplicateMerchantEmailException e)
            {
                _log.Error(e, request.ToDetails());

                return(BadRequest(ErrorResponse.Create(e.Message)));
            }
            catch (MerchantEmailUpdateException e)
            {
                _log.Error(e, request.ToDetails());

                return(BadRequest(ErrorResponse.Create(e.Message)));
            }
        }
        public BaseResponse <GetMerchantResponse, ErrorsResponse> UpdateMerchant(string merchantId, UpdateMerchantRequest request)
        {
            var method   = HttpMethod.Put;
            var endpoint = $"/merchants/{merchantId}";

            return(this.SendRequest <GetMerchantResponse>(method, endpoint, request, authMode: "token"));
        }
Example #4
0
 public ApiResponse <object> UpdateMerchant(UpdateMerchantRequest request)
 {
     return(SendApiRequest <UpdateMerchantRequest, object>(request));
 }
        public async Task <ActionResult> AddOrEditMerchant(AddOrEditMerchantDialogViewModel vm)
        {
            var merchants = await _payMerchantClient.Api.GetAllAsync();

            if (string.IsNullOrEmpty(vm.Name))
            {
                return(this.JsonFailResult("MerchantId required", ErrorMessageAnchor));
            }

            if (string.IsNullOrEmpty(vm.DisplayName))
            {
                return(this.JsonFailResult("DisplayName required", ErrorMessageAnchor));
            }

            if (string.IsNullOrEmpty(vm.ApiKey))
            {
                vm.ApiKey = StringUtils.GenerateId().Replace("-", string.Empty);
            }

            if (string.IsNullOrEmpty(vm.Email) && vm.IsNewMerchant)
            {
                return(this.JsonFailResult("Email required", ErrorMessageAnchor));
            }

            if (vm.IsNewMerchant)
            {
                if (merchants != null && merchants.Select(x => x.Name).Contains(vm.Name))
                {
                    return(this.JsonFailResult(Phrases.AlreadyExists, "#name"));
                }

                try
                {
                    var merchant = await _payMerchantClient.Api.CreateAsync(new CreateMerchantRequest
                    {
                        Name        = vm.Name,
                        ApiKey      = vm.ApiKey,
                        LwId        = vm.LwId,
                        DisplayName = vm.DisplayName,
                        Email       = vm.Email
                    });

                    await _payAuthClient.RegisterAsync(new Lykke.Service.PayAuth.Client.Models.RegisterRequest
                    {
                        ApiKey   = vm.ApiKey,
                        ClientId = merchant.Id
                    });
                }
                catch (Exception ex)
                {
                    return(this.JsonFailResult(ex.Message, ErrorMessageAnchor));
                }
            }
            else
            {
                MerchantModel existingMerchant = await _payMerchantClient.Api.GetByIdAsync(vm.Id);

                try
                {
                    var updateRequest = new UpdateMerchantRequest
                    {
                        Id          = vm.Id,
                        ApiKey      = vm.ApiKey,
                        LwId        = vm.LwId,
                        Name        = vm.Name,
                        DisplayName = vm.DisplayName,
                    };

                    if (string.IsNullOrEmpty(existingMerchant.Email))
                    {
                        if (!string.IsNullOrEmpty(vm.Email))
                        {
                            updateRequest.Email = vm.Email;
                        }
                    }

                    await _payMerchantClient.Api.UpdateAsync(updateRequest);

                    await _payAuthClient.UpdateApiKeyAsync(new Lykke.Service.PayAuth.Client.Models.UpdateApiKeyRequest
                    {
                        ApiKey   = vm.ApiKey,
                        ClientId = vm.Id
                    });
                }
                catch (Exception ex)
                {
                    return(this.JsonFailResult(ex.Message, ErrorMessageAnchor));
                }
            }

            return(this.JsonRequestResult("#merchantsList", Url.Action("MerchantsList")));
        }
Example #6
0
 public async Task <ServiceResponse <Merchant> > Update(Guid Id, UpdateMerchantRequest request)
 {
     throw new NotImplementedException();
 }
Example #7
0
 public async Task UpdateMerchantAsync(UpdateMerchantRequest request)
 {
     await _runner.RunWithDefaultErrorHandlingAsync(() => _merchantsApi.UpdateAsync(request));
 }