зеркало из
https://github.com/glebtv/yookassa.git
synced 2026-09-07 11:25:51 +03:00
Merge refactor branch
Этот коммит содержится в:
@@ -7,6 +7,7 @@ require "yookassa/config"
|
||||
require "yookassa/payments"
|
||||
require "yookassa/refunds"
|
||||
require "yookassa/receipts"
|
||||
require "yookassa/webhooks"
|
||||
|
||||
module Yookassa
|
||||
class << self
|
||||
@@ -31,5 +32,11 @@ module Yookassa
|
||||
def receipts
|
||||
@receipts ||= Receipts.new
|
||||
end
|
||||
|
||||
def webhooks
|
||||
@webhooks ||= Webhooks.new
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
require "yookassa/railtie" if defined?(Rails::Railtie)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require "httpclient"
|
||||
require "json"
|
||||
require_relative "./entity/error"
|
||||
require_relative "entity/error"
|
||||
|
||||
module Yookassa
|
||||
class Client
|
||||
@@ -38,8 +38,9 @@ module Yookassa
|
||||
api_call { http.post("#{API_URL}#{endpoint}", body: JSON.generate(payload), header: headers) }
|
||||
end
|
||||
|
||||
def delete(endpoint, idempotency_key:)
|
||||
api_call { http.delete("#{API_URL}#{endpoint}", header: { "Idempotence-Key" => idempotency_key }) }
|
||||
def delete(endpoint, idempotency_key: nil)
|
||||
headers = idempotency_key ? { "Idempotence-Key" => idempotency_key } : {}
|
||||
api_call { http.delete("#{API_URL}#{endpoint}", header: headers) }
|
||||
end
|
||||
|
||||
def api_call
|
||||
|
||||
@@ -2,6 +2,21 @@
|
||||
|
||||
module Yookassa
|
||||
class Config
|
||||
attr_accessor :shop_id, :api_key
|
||||
# Source: https://yookassa.ru/developers/using-api/webhooks#ip
|
||||
DEFAULT_WEBHOOK_ALLOWED_IPS = [
|
||||
"185.71.76.0/27",
|
||||
"185.71.77.0/27",
|
||||
"77.75.153.0/25",
|
||||
"77.75.156.11",
|
||||
"77.75.156.35",
|
||||
"77.75.154.128/25",
|
||||
"2a02:5180::/32"
|
||||
].freeze
|
||||
|
||||
attr_accessor :shop_id, :api_key, :webhook_token, :webhook_allowed_ips
|
||||
|
||||
def initialize
|
||||
@webhook_allowed_ips = DEFAULT_WEBHOOK_ALLOWED_IPS.dup
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./client"
|
||||
require_relative "./entity/deal"
|
||||
require_relative "./entity/collection"
|
||||
require_relative "client"
|
||||
require_relative "entity/deal"
|
||||
require_relative "entity/collection"
|
||||
|
||||
module Yookassa
|
||||
class Deals < Client
|
||||
@@ -13,7 +13,7 @@ module Yookassa
|
||||
|
||||
def create(payload:, idempotency_key: SecureRandom.hex(10))
|
||||
data = post("deals", payload: payload, idempotency_key: idempotency_key)
|
||||
Entity::Deal.new(**data.merge(idempotency_key: idempotency_key))
|
||||
Entity::Deal.new(**data, idempotency_key: idempotency_key)
|
||||
end
|
||||
|
||||
def list
|
||||
|
||||
7
lib/yookassa/engine.rb
Обычный файл
7
lib/yookassa/engine.rb
Обычный файл
@@ -0,0 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Yookassa
|
||||
class Engine < ::Rails::Engine
|
||||
isolate_namespace Yookassa
|
||||
end
|
||||
end
|
||||
@@ -1,6 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "types"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "types"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "types"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "types"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "./payment"
|
||||
require_relative "./receipt"
|
||||
require_relative "./refund"
|
||||
require_relative "./webhook"
|
||||
require_relative "./deal"
|
||||
require_relative "types"
|
||||
require_relative "payment"
|
||||
require_relative "receipt"
|
||||
require_relative "refund"
|
||||
require_relative "webhook"
|
||||
require_relative "deal"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "types"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "types"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "./amount"
|
||||
require_relative "types"
|
||||
require_relative "amount"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "types"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "./amount"
|
||||
require_relative "./payment_methods"
|
||||
require_relative "./confirmation"
|
||||
require_relative "./recipient"
|
||||
require_relative "./cancellation_details"
|
||||
require_relative "./authorization_details"
|
||||
require_relative "./transfer"
|
||||
require_relative "types"
|
||||
require_relative "amount"
|
||||
require_relative "payment_methods"
|
||||
require_relative "confirmation"
|
||||
require_relative "recipient"
|
||||
require_relative "cancellation_details"
|
||||
require_relative "authorization_details"
|
||||
require_relative "transfer"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "./card"
|
||||
require_relative "types"
|
||||
require_relative "card"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "./customer"
|
||||
require_relative "./product"
|
||||
require_relative "types"
|
||||
require_relative "customer"
|
||||
require_relative "product"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "./amount"
|
||||
require_relative "./payout_destinations"
|
||||
require_relative "types"
|
||||
require_relative "amount"
|
||||
require_relative "payout_destinations"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "./card"
|
||||
require_relative "types"
|
||||
require_relative "card"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "./amount"
|
||||
require_relative "./supplier"
|
||||
require_relative "types"
|
||||
require_relative "amount"
|
||||
require_relative "supplier"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "./customer"
|
||||
require_relative "./product"
|
||||
require_relative "./settlement"
|
||||
require_relative "types"
|
||||
require_relative "customer"
|
||||
require_relative "product"
|
||||
require_relative "settlement"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "types"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "./amount"
|
||||
require_relative "./source"
|
||||
require_relative "types"
|
||||
require_relative "amount"
|
||||
require_relative "source"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "./amount"
|
||||
require_relative "types"
|
||||
require_relative "amount"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "./amount"
|
||||
require_relative "types"
|
||||
require_relative "amount"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "types"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "types"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "./amount"
|
||||
require_relative "types"
|
||||
require_relative "amount"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./types"
|
||||
require_relative "types"
|
||||
|
||||
module Yookassa
|
||||
module Entity
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./client"
|
||||
require_relative "./entity/payment"
|
||||
require_relative "./entity/collection"
|
||||
require_relative "client"
|
||||
require_relative "entity/payment"
|
||||
require_relative "entity/collection"
|
||||
|
||||
module Yookassa
|
||||
class Payments < Client
|
||||
@@ -13,17 +13,17 @@ module Yookassa
|
||||
|
||||
def create(payment:, idempotency_key: SecureRandom.hex(10))
|
||||
data = post("payments", payload: payment, idempotency_key: idempotency_key)
|
||||
Entity::Payment.new(**data.merge(idempotency_key: idempotency_key))
|
||||
Entity::Payment.new(**data, idempotency_key: idempotency_key)
|
||||
end
|
||||
|
||||
def capture(payment_id:, idempotency_key: SecureRandom.hex(10))
|
||||
data = post("payments/#{payment_id}/capture", idempotency_key: idempotency_key)
|
||||
Entity::Payment.new(**data.merge(idempotency_key: idempotency_key))
|
||||
Entity::Payment.new(**data, idempotency_key: idempotency_key)
|
||||
end
|
||||
|
||||
def cancel(payment_id:, idempotency_key: SecureRandom.hex(10))
|
||||
data = post("payments/#{payment_id}/cancel", idempotency_key: idempotency_key)
|
||||
Entity::Payment.new(**data.merge(idempotency_key: idempotency_key))
|
||||
Entity::Payment.new(**data, idempotency_key: idempotency_key)
|
||||
end
|
||||
|
||||
def list(filters: {})
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./client"
|
||||
require_relative "./entity/payout"
|
||||
require_relative "./entity/collection"
|
||||
require_relative "client"
|
||||
require_relative "entity/payout"
|
||||
require_relative "entity/collection"
|
||||
|
||||
module Yookassa
|
||||
class Payouts < Client
|
||||
@@ -13,7 +13,7 @@ module Yookassa
|
||||
|
||||
def create(payload:, idempotency_key: SecureRandom.hex(10))
|
||||
data = post("payouts", payload: payload, idempotency_key: idempotency_key)
|
||||
Entity::Payout.new(**data.merge(idempotency_key: idempotency_key))
|
||||
Entity::Payout.new(**data, idempotency_key: idempotency_key)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
8
lib/yookassa/railtie.rb
Обычный файл
8
lib/yookassa/railtie.rb
Обычный файл
@@ -0,0 +1,8 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "yookassa/engine"
|
||||
|
||||
module Yookassa
|
||||
class Railtie < ::Rails::Railtie
|
||||
end
|
||||
end
|
||||
@@ -1,8 +1,8 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./client"
|
||||
require_relative "./entity/receipt"
|
||||
require_relative "./entity/collection"
|
||||
require_relative "client"
|
||||
require_relative "entity/receipt"
|
||||
require_relative "entity/collection"
|
||||
|
||||
module Yookassa
|
||||
class Receipts < Client
|
||||
@@ -13,7 +13,7 @@ module Yookassa
|
||||
|
||||
def create(payload:, idempotency_key: SecureRandom.hex(10))
|
||||
data = post("receipts", payload: payload, idempotency_key: idempotency_key)
|
||||
Entity::Receipt.new(**data.merge(idempotency_key: idempotency_key))
|
||||
Entity::Receipt.new(**data, idempotency_key: idempotency_key)
|
||||
end
|
||||
|
||||
def list(filters: {})
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./client"
|
||||
require_relative "./entity/refund"
|
||||
require_relative "./entity/collection"
|
||||
require_relative "client"
|
||||
require_relative "entity/refund"
|
||||
require_relative "entity/collection"
|
||||
|
||||
module Yookassa
|
||||
class Refunds < Client
|
||||
@@ -13,7 +13,7 @@ module Yookassa
|
||||
|
||||
def create(payload:, idempotency_key: SecureRandom.hex(10))
|
||||
data = post("refunds", payload: payload, idempotency_key: idempotency_key)
|
||||
Entity::Refund.new(**data.merge(idempotency_key: idempotency_key))
|
||||
Entity::Refund.new(**data, idempotency_key: idempotency_key)
|
||||
end
|
||||
|
||||
def list(filters: {})
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./client"
|
||||
require_relative "./entity/store_info"
|
||||
require_relative "client"
|
||||
require_relative "entity/store_info"
|
||||
|
||||
module Yookassa
|
||||
class Stores < Client
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Yookassa
|
||||
VERSION = "0.2.0"
|
||||
VERSION = "0.2.1"
|
||||
end
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "./client"
|
||||
require_relative "./entity/webhook"
|
||||
require_relative "./entity/collection"
|
||||
require_relative "client"
|
||||
require_relative "entity/webhook"
|
||||
require_relative "entity/collection"
|
||||
|
||||
module Yookassa
|
||||
class Webhooks < Client
|
||||
def create(payload:, idempotency_key: SecureRandom.hex(10))
|
||||
data = post("webhooks", payload: payload, idempotency_key: idempotency_key)
|
||||
Entity::Webhook.new(**data.merge(idempotency_key: idempotency_key))
|
||||
Entity::Webhook.new(**data, idempotency_key: idempotency_key)
|
||||
end
|
||||
|
||||
def list
|
||||
@@ -17,7 +17,7 @@ module Yookassa
|
||||
end
|
||||
|
||||
def delete(webhook_id:)
|
||||
delete("webhooks/#{webhook_id}")
|
||||
super("webhooks/#{webhook_id}")
|
||||
true
|
||||
end
|
||||
end
|
||||
|
||||
Ссылка в новой задаче
Block a user