Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 47 additions & 9 deletions lib/yoomoney/models/payment_create_params.rb
Original file line number Diff line number Diff line change
Expand Up @@ -181,17 +181,25 @@ class PaymentCreateParams < Yoomoney::Internal::Type::BaseModel
module Confirmation
extend Yoomoney::Internal::Type::Union

variant -> { Yoomoney::PaymentCreateParams::Confirmation::ConfirmationDataRedirect }
discriminator :type

variant -> { Yoomoney::PaymentCreateParams::Confirmation::ConfirmationDataExternal }
variant :redirect, -> { Yoomoney::PaymentCreateParams::Confirmation::ConfirmationDataRedirect }

variant -> { Yoomoney::ConfirmationData }
variant :external, -> { Yoomoney::PaymentCreateParams::Confirmation::ConfirmationDataExternal }

variant -> { Yoomoney::PaymentCreateParams::Confirmation::ConfirmationDataEmbedded }
variant :qr, -> { Yoomoney::ConfirmationData }

variant -> { Yoomoney::PaymentCreateParams::Confirmation::ConfirmationDataMobileApplication }
variant :embedded, -> { Yoomoney::PaymentCreateParams::Confirmation::ConfirmationDataEmbedded }

variant :mobile_application, -> { Yoomoney::PaymentCreateParams::Confirmation::ConfirmationDataMobileApplication }

class ConfirmationDataRedirect < Yoomoney::Models::ConfirmationData
# @!attribute type
# Код сценария подтверждения.
#
# @return [Symbol, :redirect]
required :type, const: :redirect

# @!attribute return_url
# URL, на который необходимо перенаправить пользователя после оплаты.
#
Expand All @@ -204,43 +212,73 @@ class ConfirmationDataRedirect < Yoomoney::Models::ConfirmationData
# @return [Boolean, nil]
optional :enforce, Yoomoney::Internal::Type::Boolean

# @!method initialize(return_url:, enforce: nil)
# @!method initialize(return_url:, enforce: nil, locale: nil, type: :redirect)
# @param return_url [String] URL, на который необходимо перенаправить пользователя после оплаты.
#
# @param enforce [Boolean] Требование пройти аутентификацию при оплате банковской картой по 3-D Secure.
#
# @param locale [Symbol, Yoomoney::Models::Locale] Язык интерфейса, писем и смс.
#
# @param type [Symbol, :redirect] Код сценария подтверждения.
end

class ConfirmationDataExternal < Yoomoney::Models::ConfirmationData
# @!attribute type
# Код сценария подтверждения.
#
# @return [Symbol, :external]
required :type, const: :external

# @!attribute locale
# Язык интерфейса.
#
# @return [Symbol, Yoomoney::Models::Locale, nil]
optional :locale, enum: -> { Yoomoney::Locale }

# @!method initialize(locale: nil)
# @!method initialize(locale: nil, type: :external)
# @param locale [Symbol, Yoomoney::Models::Locale] Язык интерфейса.
#
# @param type [Symbol, :external] Код сценария подтверждения.
end

class ConfirmationDataEmbedded < Yoomoney::Models::ConfirmationData
# @!attribute type
# Код сценария подтверждения.
#
# @return [Symbol, :embedded]
required :type, const: :embedded

# @!attribute locale
# Язык интерфейса.
#
# @return [Symbol, Yoomoney::Models::Locale, nil]
optional :locale, enum: -> { Yoomoney::Locale }

# @!method initialize(locale: nil)
# @!method initialize(locale: nil, type: :embedded)
# @param locale [Symbol, Yoomoney::Models::Locale] Язык интерфейса.
#
# @param type [Symbol, :embedded] Код сценария подтверждения.
end

class ConfirmationDataMobileApplication < Yoomoney::Models::ConfirmationData
# @!attribute type
# Код сценария подтверждения.
#
# @return [Symbol, :mobile_application]
required :type, const: :mobile_application

# @!attribute return_url
# URL, на который необходимо перенаправить пользователя после оплаты.
#
# @return [String]
required :return_url, String

# @!method initialize(return_url:)
# @!method initialize(return_url:, locale: nil, type: :mobile_application)
# @param return_url [String] URL, на который необходимо перенаправить пользователя после оплаты.
#
# @param locale [Symbol, Yoomoney::Models::Locale] Язык интерфейса, писем и смс.
#
# @param type [Symbol, :mobile_application] Код сценария подтверждения.
end

# @!method self.variants
Expand Down
108 changes: 94 additions & 14 deletions rbi/yoomoney/models/payment_create_params.rbi
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,17 @@ module Yoomoney
)
end

# Код сценария подтверждения.
sig { returns(Symbol) }
attr_accessor :type

# Язык интерфейса, писем и смс.
sig { returns(T.nilable(Yoomoney::Locale::OrSymbol)) }
attr_reader :locale

sig { params(locale: Yoomoney::Locale::OrSymbol).void }
attr_writer :locale

# URL, на который необходимо перенаправить пользователя после оплаты.
sig { returns(String) }
attr_accessor :return_url
Expand All @@ -419,19 +430,35 @@ module Yoomoney
attr_writer :enforce

sig do
params(return_url: String, enforce: T::Boolean).returns(
T.attached_class
)
params(
return_url: String,
enforce: T::Boolean,
locale: Yoomoney::Locale::OrSymbol,
type: Symbol
).returns(T.attached_class)
end
def self.new(
# URL, на который необходимо перенаправить пользователя после оплаты.
return_url:,
# Требование пройти аутентификацию при оплате банковской картой по 3-D Secure.
enforce: nil
enforce: nil,
# Язык интерфейса, писем и смс.
locale: nil,
# Код сценария подтверждения.
type: :redirect
)
end

sig { override.returns({ return_url: String, enforce: T::Boolean }) }
sig do
override.returns(
{
return_url: String,
enforce: T::Boolean,
locale: Yoomoney::Locale::OrSymbol,
type: Symbol
}
)
end
def to_hash
end
end
Expand All @@ -445,6 +472,10 @@ module Yoomoney
)
end

# Код сценария подтверждения.
sig { returns(Symbol) }
attr_accessor :type

# Язык интерфейса.
sig { returns(T.nilable(Yoomoney::Locale::OrSymbol)) }
attr_reader :locale
Expand All @@ -453,15 +484,23 @@ module Yoomoney
attr_writer :locale

sig do
params(locale: Yoomoney::Locale::OrSymbol).returns(T.attached_class)
params(locale: Yoomoney::Locale::OrSymbol, type: Symbol).returns(
T.attached_class
)
end
def self.new(
# Язык интерфейса.
locale: nil
locale: nil,
# Код сценария подтверждения.
type: :external
)
end

sig { override.returns({ locale: Yoomoney::Locale::OrSymbol }) }
sig do
override.returns(
{ locale: Yoomoney::Locale::OrSymbol, type: Symbol }
)
end
def to_hash
end
end
Expand All @@ -475,6 +514,10 @@ module Yoomoney
)
end

# Код сценария подтверждения.
sig { returns(Symbol) }
attr_accessor :type

# Язык интерфейса.
sig { returns(T.nilable(Yoomoney::Locale::OrSymbol)) }
attr_reader :locale
Expand All @@ -483,15 +526,23 @@ module Yoomoney
attr_writer :locale

sig do
params(locale: Yoomoney::Locale::OrSymbol).returns(T.attached_class)
params(locale: Yoomoney::Locale::OrSymbol, type: Symbol).returns(
T.attached_class
)
end
def self.new(
# Язык интерфейса.
locale: nil
locale: nil,
# Код сценария подтверждения.
type: :embedded
)
end

sig { override.returns({ locale: Yoomoney::Locale::OrSymbol }) }
sig do
override.returns(
{ locale: Yoomoney::Locale::OrSymbol, type: Symbol }
)
end
def to_hash
end
end
Expand All @@ -505,18 +556,47 @@ module Yoomoney
)
end

# Код сценария подтверждения.
sig { returns(Symbol) }
attr_accessor :type

# Язык интерфейса, писем и смс.
sig { returns(T.nilable(Yoomoney::Locale::OrSymbol)) }
attr_reader :locale

sig { params(locale: Yoomoney::Locale::OrSymbol).void }
attr_writer :locale

# URL, на который необходимо перенаправить пользователя после оплаты.
sig { returns(String) }
attr_accessor :return_url

sig { params(return_url: String).returns(T.attached_class) }
sig do
params(
return_url: String,
locale: Yoomoney::Locale::OrSymbol,
type: Symbol
).returns(T.attached_class)
end
def self.new(
# URL, на который необходимо перенаправить пользователя после оплаты.
return_url:
return_url:,
# Язык интерфейса, писем и смс.
locale: nil,
# Код сценария подтверждения.
type: :mobile_application
)
end

sig { override.returns({ return_url: String }) }
sig do
override.returns(
{
return_url: String,
locale: Yoomoney::Locale::OrSymbol,
type: Symbol
}
)
end
def to_hash
end
end
Expand Down
Loading
Loading