garnet_client 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1c9df343c1bfe994acf39bc010cab0162beace91
4
- data.tar.gz: 00062db3afb701dd4e4a0bed47eb59ad0e071393
3
+ metadata.gz: c22b33c49595e2ce37cdc78b04460ccdeb12e36c
4
+ data.tar.gz: 4df857e4de820edccd50d9e6d321a31cb2d20a6c
5
5
  SHA512:
6
- metadata.gz: cb44e7159d30251623e5060007e23f36d943ddb0d130c6e2cd8a010a69a1fc7ecebd35dd5e4367119c9e7eb2cce65288ae382ef6e5299f376e9d0da38bc13980
7
- data.tar.gz: d3d0986042157d347c4cf2a715ce7817d8446a8aac1ce9ac9bf9493bdb3e5f45f69e3f0ea00935c53e5481f44439f9f0ff60c3031b63650c7cf87016b946ec50
6
+ metadata.gz: 1865476f7a85876ffc0e35454d4a124003d63a1ab63190caac2658ddb04e35f46130bb6d8d26b9504219dcb45d9b150f0cdf0bf1366d2ff790277ce56227dfff
7
+ data.tar.gz: 1f5dfd06d07482a4e40ef77c7ca752ba93d973d332525ad4f7e613f7b8ffde0565518e6ee5c495ef23787243c4f1ad23e5860f5b5cef579ce248bf55cb0e3233
data/README.md CHANGED
@@ -35,7 +35,11 @@ GarnetClient.tenant_id = 'rnet'
35
35
  # # 商户账号
36
36
  # GarnetClient.tenant_id = 'rnet'
37
37
  ```
38
+ Add Migration
38
39
 
40
+ ```ruby
41
+ rails g garnet_client:migration
42
+ ```
39
43
 
40
44
  ## Development
41
45
 
@@ -0,0 +1,94 @@
1
+ require 'json'
2
+
3
+ module GarnetClient
4
+ class GarnetNotifyController < ::ActionController::Base
5
+ if _process_action_callbacks.any?{|a| a.filter == :verify_authenticity_token}
6
+ # ActionController::Base no longer protects from forgery in Rails 5
7
+ skip_before_filter :verify_authenticity_token
8
+ end
9
+
10
+ layout false
11
+
12
+ def deposits
13
+ rs = request.body.read
14
+ code = '0'
15
+ begin
16
+ msg = JSON.parse(rs)
17
+
18
+ notice = GarnetClient::NoticeDeposit.new
19
+ notice.coin_type = msg['coin_type']
20
+ notice.contract_address = msg['contract_address']
21
+ notice.from = msg['from']
22
+ notice.tx_hash = msg['tx_hash']
23
+ notice.to = msg['to']
24
+ notice.value = msg['value']
25
+ notice.tx_timestamp = msg['timestamp']
26
+ notice.status = msg['status']
27
+ notice.notify_id = msg['notify_id']
28
+ notice.error_msg = msg['error_msg']
29
+ notice.save!
30
+
31
+ rescue JSON::ParserError => e
32
+ puts e.message
33
+ puts e.backtrace.inspect
34
+ code = '1'
35
+ end
36
+
37
+ render text: '{"status": {"code": ' + code + '}}'
38
+ end
39
+
40
+ def withdraws
41
+ rs = request.body.read
42
+ code = '0'
43
+ begin
44
+ msg = JSON.parse(rs)
45
+
46
+ notice = GarnetClient::NoticeWithdraw.new
47
+ notice.coin_type = msg['coin_type']
48
+ notice.contract_address = msg['contract_address']
49
+ notice.from = msg['from']
50
+ notice.tx_hash = msg['tx_hash']
51
+ notice.to = msg['to']
52
+ notice.value = msg['value']
53
+ notice.tx_timestamp = msg['timestamp']
54
+ notice.status = msg['status']
55
+ notice.notify_id = msg['notify_id']
56
+ notice.error_msg = msg['error_msg']
57
+ notice.save!
58
+
59
+ rescue JSON::ParserError => e
60
+ puts e.message
61
+ puts e.backtrace.inspect
62
+ code = '1'
63
+ end
64
+
65
+ render text: '{"status": {"code": ' + code + '}}'
66
+ end
67
+
68
+ def transactions
69
+ rs = request.body.read
70
+ msg = JSON.parse(rs)
71
+ code = '0'
72
+
73
+ begin
74
+ notice = GarnetClient::NoticeTransaction.new
75
+ notice.coin_type = msg['coin_type']
76
+ notice.tx_id = msg['tx_id']
77
+ notice.tx_hash = msg['tx_hash']
78
+ notice.tx_timestamp = msg['timestamp']
79
+ notice.from = msg['from']
80
+ notice.to = msg['to']
81
+ notice.value = msg['value']
82
+ notice.contract_address = msg['contractAddress']
83
+ notice.status = msg['status']
84
+ notice.save!
85
+ rescue JSON::ParserError => e
86
+ puts e.message
87
+ puts e.backtrace.inspect
88
+ code = '1'
89
+ end
90
+
91
+ render text: '{"status": {"code": ' + code + '}}'
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,4 @@
1
+ module GarnetClient
2
+ class NoticeDeposit < ActiveRecord::Base
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module GarnetClient
2
+ class NoticeTransaction < ActiveRecord::Base
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module GarnetClient
2
+ class NoticeWithdraw < ActiveRecord::Base
3
+ end
4
+ end
data/config/routes.rb ADDED
@@ -0,0 +1,5 @@
1
+ GarnetClient::Engine.routes.draw do
2
+ post "notify_deposits" => "garnet_notify#deposits"
3
+ post "notify_withdraws" => "garnet_notify#withdraws"
4
+ post "notify_transactions" => "garnet_notify#transactions"
5
+ end
@@ -31,6 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.require_paths = ["lib"]
32
32
 
33
33
  spec.add_dependency 'httparty'
34
+ spec.add_dependency "railties", ">= 3.1.0"
34
35
 
35
36
  spec.add_development_dependency "bundler", "~> 1.15"
36
37
  spec.add_development_dependency "rake", "~> 10.0"
data/lib/garnet_client.rb CHANGED
@@ -1,7 +1,9 @@
1
1
  require "garnet_client/version"
2
+ require "garnet_client/engine"
2
3
  require "garnet_client/utils/http_request"
3
4
  require "garnet_client/service"
4
5
  require "garnet_client/result"
6
+ require "garnet_client/railtie" if defined?(Rails)
5
7
  require 'HTTParty'
6
8
  require 'json'
7
9
 
@@ -10,6 +12,13 @@ module GarnetClient
10
12
  @content_type = 'application/json'
11
13
  @response_headers = {}
12
14
 
15
+ # 接口路径
16
+ API_POST_NOTICE_DEPOSIT_URL = '/api/garnet_client/notify_deposits'
17
+ # 接口路径
18
+ API_POST_NOTICE_WITHDRAW_URL = '/api/garnet_client/notify_withdraws'
19
+ # 接口路径
20
+ API_POST_NOTICE_TX_URL = '/api/garnet_client/notify_transactions'
21
+
13
22
  class<< self
14
23
  # mer_id 商户账号
15
24
  # mer_key 加密key
@@ -0,0 +1,11 @@
1
+ module GarnetClient
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace GarnetClient
4
+
5
+ initializer 'GarnetClient', group: :all do |app|
6
+ Rails.application.routes.prepend do
7
+ mount GarnetClient::Engine, at: '/api/garnet_client'
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ #encoding: utf-8
2
+ module GarnetClient
3
+ class Railtie < Rails::Railtie
4
+ rake_tasks do
5
+ load 'rake/garnet_client.rake'
6
+ end
7
+ end
8
+ end
@@ -1,3 +1,3 @@
1
1
  module GarnetClient
2
- VERSION = "0.1.9"
2
+ VERSION = "0.1.10"
3
3
  end
@@ -0,0 +1,15 @@
1
+ require 'rails/generators/active_record'
2
+
3
+ class GarnetClient::MigrationGenerator < ::Rails::Generators::Base
4
+ include Rails::Generators::Migration
5
+ source_root File.expand_path('../templates', __FILE__)
6
+ desc 'Installs GarnetClient migration file.'
7
+
8
+ def install
9
+ migration_template 'migration.rb', 'db/migrate/create_garnet_client_notices.rb'
10
+ end
11
+
12
+ def self.next_migration_number(dirname)
13
+ ActiveRecord::Generators::Base.next_migration_number(dirname)
14
+ end
15
+ end
@@ -0,0 +1,49 @@
1
+ class CreateGarnetClientNotices < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :garnet_client_notice_deposits do |t|
4
+ t.string :coin_type
5
+ t.string :contract_address
6
+ t.string :from
7
+ t.string :tx_hash
8
+ t.string :to
9
+ t.integer :value
10
+ t.integer :tx_timestamp
11
+ t.integer :status
12
+ t.string :notify_id
13
+ t.string :error_msg
14
+ t.timestamps
15
+ end
16
+
17
+ create_table :garnet_client_notice_withdraws do |t|
18
+ t.string :coin_type
19
+ t.string :contract_address
20
+ t.string :from
21
+ t.string :tx_hash
22
+ t.string :to
23
+ t.integer :value
24
+ t.integer :tx_timestamp
25
+ t.integer :status
26
+ t.string :notify_id
27
+ t.string :error_msg
28
+ t.timestamps
29
+ end
30
+
31
+ create_table :garnet_client_notice_transactions do |t|
32
+ t.string :tx_id
33
+ t.string :tx_hash
34
+ t.integer :tx_timestamp
35
+ t.string :from
36
+ t.string :to
37
+ t.integer :value
38
+ t.string :contract_address
39
+ t.integer :status
40
+ t.timestamps
41
+ end
42
+ end
43
+
44
+ def self.down
45
+ drop_table :garnet_client_notice_deposits
46
+ drop_table :garnet_client_notice_withdraws
47
+ drop_table :garnet_client_notice_transactions
48
+ end
49
+ end
@@ -0,0 +1,13 @@
1
+ require 'fileutils'
2
+
3
+ namespace :garnet_client do
4
+ namespace :init do
5
+ desc "Generate garnet_client init file from example"
6
+ task :create do
7
+ source = File.join(Gem.loaded_specs["geee_pay"].full_gem_path, "garnet_client.rb")
8
+ target = File.join(Rails.root, "config", "initializers", "garnet_client.rb")
9
+ FileUtils.cp_r source, target
10
+ end
11
+
12
+ end
13
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: garnet_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - tarzansos
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: railties
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 3.1.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 3.1.0
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -82,15 +96,25 @@ files:
82
96
  - LICENSE.txt
83
97
  - README.md
84
98
  - Rakefile
99
+ - app/controllers/garnet_notify_controller.rb
100
+ - app/models/garnet_client/notice_deposit.rb
101
+ - app/models/garnet_client/notice_transaction.rb
102
+ - app/models/garnet_client/notice_withdraw.rb
85
103
  - bin/console
86
104
  - bin/setup
105
+ - config/routes.rb
87
106
  - garnet_client.gemspec
88
107
  - garnet_client.rb
89
108
  - lib/garnet_client.rb
109
+ - lib/garnet_client/engine.rb
110
+ - lib/garnet_client/railtie.rb
90
111
  - lib/garnet_client/result.rb
91
112
  - lib/garnet_client/service.rb
92
113
  - lib/garnet_client/utils/http_request.rb
93
114
  - lib/garnet_client/version.rb
115
+ - lib/generators/garnet_client/migration_generator.rb
116
+ - lib/generators/garnet_client/templates/migration.rb
117
+ - lib/rake/garnet_client.rake
94
118
  homepage: https://github.com/tuminfei/garnet_client
95
119
  licenses:
96
120
  - MIT