Untitled

 avatar
unknown
plain_text
10 months ago
5.5 kB
12
Indexable
import 'package:bcc_core/data.dart';
import 'package:bcc_transfers/src/common/data/dtos/transfer_common_response.dart';
import 'package:bcc_transfers/src/features/transfer_swift/data/dtos/swift_rate_dto.dart';
import 'package:dio/dio.dart';
import 'package:retrofit/retrofit.dart';

part 'swift_mci_source.g.dart';

@RestApi()
abstract class SwiftMciSource {
  factory SwiftMciSource(
    Dio dio, {
    String baseUrl,
  }) = _SwiftMciSource;

  @POST('/!pkg_w_mb_main.operation?ACTION=GET_NATH_RATE')
  @FormUrlEncoded()
  Future<MciResponseDto<List<SwiftRateDto>>> getRate({
    @Query('RATE_TYPE') String? rateType,
    //TODO these field needed for correct requests, they don't affect the response, mb it will be removed in future
    @Field('CURRENCY_DB') String currencyDebit = 'KZT',
    @Field('CURRENCY_CR') String currencyCredit = 'USD',
  });

  @POST('/!pkg_w_mb_main.operation?ACTION=GET_SWIFT_COMMISSION')
  @FormUrlEncoded()
  Future<String> getCommission(
    @Field('AMOUNT') double amount,
    @Field('AMOUNT_CURRENCY') String currency,
    @Field('ACCOUNT_ID') String accountId,
  );

  @POST('/!pkg_w_mb_main.operation?ACTION=SEND_OTP')
  @FormUrlEncoded()
  Future<TransferCommonResponse> sendOtp({
    @Field('ACCOUNT_ID') required String accountId,
    @Field('DESTBANK_FULLNAME') required String countryName,
    @Field('BENEFICIARY_ACCOUNT') required String beneficiaryAccount,
    @Field('BENEFICIARY_RESIDENCE_COUNTRY_CODE') required String countryCode,
    @Field('TRANSFER_AMOUNT') required double transferAmount,
    @Field('AMOUNT') required double amount,
    @Field('PURPOSE_CODE') required String purposeCode,
    @Field('COMMISSION_AMOUNT') required double? commissionAmount,
    @Field('COMMISSION_CURRENCY') required String? commissionCurrency,
    @Field('TRANSFER_CURRENCY') required String transferCurrency,
    @Field('BENEFICIARY_CITY') required String beneficiaryCity,
    @Field('DEST_BANK_BIC') required String destBankBic,
    @Field('AMOUNT_CURRENCY') required String amountCurrency,
    @Field('BENEFICIARY_NAME_ADDRESS1') required String beneficiaryFio,
    @Field('BENEFICIARY_RESIDENT') required int beneficiaryResident,
    @Field('PURPOSE_DESCRIPTION') required String? purposeDescription,
    @Field('IDEMPOTENCY_KEY') required String? idempotencyKey,
    @Field('UAE_PURPOSE_CODE') required String? uaePurposeCode,
    @Field('COMMISSION_ACCOUNT_ID') required String? commissionAccountId,
    @Field('COMMISSION_ACCOUNT') required String? commissionAccount,
    @Field('INTERIM_BANK_ACCOUNT') required String? interimBankAccount,
    @Field('INTERIM_BANK_BIC') required String? interimBankBic,
    @Field('BENEFICIARY_JURFL') required int? beneficiaryJurfl,
    @Field('CONFIRMATIONDOCUMENT_DATE')
    required String? confirmationDocumentDate,
    @Field('CONFIRMATIONDOCUMENT_NUMBER')
    required String? confirmationDocumentNumber,
    @Field('PURPOSE_CODEVO') required String? ruVoCode,
    @Field('BENEFICIARY_INN') required String? ruIin,
    @Field('BENEFICIARY_KPP') required String? ruKpp,
    @Field('DESTBANK_FULLADDRESS') required String? ruBankName,
    @Field('DEST_BANK_BIC') required String? ruDestBankBin,
    @Field('CONFIRMATIONDOCUMENT_TYPE') String? confirmationDocumentType = '01',
  });

  @POST('/!pkg_w_mb_main.operation?ACTION=SWIFT_TRANSFER')
  @FormUrlEncoded()
  Future<String> makeSwiftTransfer({
    @Field('ACCOUNT_ID') required String accountId,
    @Field('DESTBANK_FULLNAME') required String countryName,
    @Field('BENEFICIARY_ACCOUNT') required String beneficiaryAccount,
    @Field('BENEFICIARY_RESIDENCE_COUNTRY_CODE') required String countryCode,
    @Field('TRANSFER_AMOUNT') required double transferAmount,
    @Field('AMOUNT') required double amount,
    @Field('PURPOSE_CODE') required String purposeCode,
    @Field('COMMISSION_AMOUNT') required double? commissionAmount,
    @Field('COMMISSION_CURRENCY') required String? commissionCurrency,
    @Field('TRANSFER_CURRENCY') required String transferCurrency,
    @Field('BENEFICIARY_CITY') required String beneficiaryCity,
    @Field('DEST_BANK_BIC') required String destBankBic,
    @Field('AMOUNT_CURRENCY') required String amountCurrency,
    @Field('BENEFICIARY_NAME_ADDRESS1') required String beneficiaryFio,
    @Field('BENEFICIARY_RESIDENT') required int beneficiaryResident,
    @Field('VERIFY_CODE') required String verifyOtpCode,
    @Field('BENEFICIARY_JURFL') required int beneficiaryJurfl,
    @Field('PURPOSE_DESCRIPTION') required String? purposeDescription,
    @Field('IDEMPOTENCY_KEY') required String? idempotencyKey,
    @Field('UAE_PURPOSE_CODE') required String? uaePurposeCode,
    @Field('COMMISSION_ACCOUNT_ID') required String? commissionAccountId,
    @Field('COMMISSION_ACCOUNT') required String? commissionAccount,
    @Field('INTERIM_BANK_ACCOUNT') required String? interimBankAccount,
    @Field('INTERIM_BANK_BIC') required String? interimBankBic,
    @Field('CONFIRMATIONDOCUMENT_DATE')
    required String? confirmationDocumentDate,
    @Field('CONFIRMATIONDOCUMENT_NUMBER')
    required String? confirmationDocumentNumber,
    @Field('PURPOSE_CODEVO') required String? ruVoCode,
    @Field('BENEFICIARY_INN') required String? ruIin,
    @Field('BENEFICIARY_KPP') required String? ruKpp,
    @Field('DESTBANK_FULLADDRESS') required String? ruBankName,
    @Field('DEST_BANK_BIC') required String? ruDestBankBin,
    @Field('CONFIRMATIONDOCUMENT_TYPE') String? confirmationDocumentType = '01',
  });
}
Editor is loading...
Leave a Comment