cmcc_hxy 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3fb88fb013d37aa1c68af48069e2ff7bb17524e87631d193b0b972de348156b3
4
- data.tar.gz: 475e8a7cf30323319b15ccf2013ca3af53ef63f3e2904883f3ed9b9ebf342570
3
+ metadata.gz: 5bd2ac9ea657119d886c6603654661fb99c666ab06dac227bd3091b6560c11db
4
+ data.tar.gz: 38eebbbde7b839491f5cff2c5313254c96cef521d38ba62475c6aff0c6e33e96
5
5
  SHA512:
6
- metadata.gz: 3e4d355eee59a81ac6d1cdc1d85f9582cfc8b2da67b7bfd72e292d03dfc1f59432f2a4adbd6812e13f6e80cfea86ac5e3d04d7910dd9d13fc52e1bb6ca6f7bab
7
- data.tar.gz: 94befb5770ca74f4a67707e3fdaf02b7ab6bc561c99550649e21889611a4d9966fdb95048655ba6e3bde858e9eb110b18f8e8e9b7ac57eb8f354f95a06a1c30e
6
+ metadata.gz: f39de22d0ac1140f48731ecc4bbbc1ee5a4e60360094d97c01a1bebe2dd6b85586fb920b7d27f4639f53bcc2ee6509c4d3a74be8d592c8044e0c07528e8dc4fa
7
+ data.tar.gz: 228abea7a4f295108eaf8238f021a593431a9aea333b5d4c0e1c957cdb66bbcf3d6eb79fac312c13cc777ca78bd7fe1ce12328338960184aebe6068b57bf3e2e
data/.gitignore CHANGED
@@ -6,3 +6,5 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+
10
+ /Gemfile.lock
@@ -6,12 +6,12 @@ require "cmcc_hxy/version"
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "cmcc_hxy"
8
8
  spec.version = CmccHxy::VERSION
9
- spec.authors = ["lumuy"]
10
- spec.email = ["dxgnaw@gmail.com"]
9
+ spec.authors = ["zidcn"]
10
+ spec.email = ["zd@zidcn.com"]
11
11
 
12
12
  spec.summary = %q{CMCC hxy.}
13
13
  spec.description = %q{CMCC hexiaoyuan API.}
14
- spec.homepage = "https://github.com/Lumuy/cmcc_hxy.git"
14
+ spec.homepage = "https://github.com/zidcn/cmcc_hxy.git"
15
15
  spec.license = "MIT"
16
16
 
17
17
 
@@ -27,5 +27,6 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency "bundler", "~> 1.16"
28
28
  spec.add_development_dependency "rake", "~> 10.0"
29
29
  spec.add_development_dependency "minitest", "~> 5.0"
30
+ spec.add_development_dependency "webmock", "~> 3.8.3"
30
31
  spec.add_development_dependency "rest-client", "~> 2.0.2"
31
32
  end
@@ -1,11 +1,7 @@
1
+ class CmccHxy
2
+ end
3
+
1
4
  require "cmcc_hxy/client"
5
+ require "cmcc_hxy/sms_client"
2
6
  require "cmcc_hxy/config"
3
7
  require "cmcc_hxy/version"
4
-
5
- module CmccHxy
6
- class << self
7
- attr_accessor :config
8
- end
9
-
10
- self.config ||= Config.new
11
- end
@@ -1,12 +1,15 @@
1
- require 'json'
2
- require 'rest-client'
3
- require 'cmcc_hxy/error'
1
+ require 'cmcc_hxy/rest_client'
2
+ require 'cmcc_hxy/config'
4
3
 
5
4
  class CmccHxy::Client
6
5
  def initialize(token)
7
6
  @token = token
8
7
  end
9
8
 
9
+ def host
10
+ @host ||= CmccHxy::Config.hxy_host
11
+ end
12
+
10
13
  def get_users
11
14
  chk_oauth
12
15
  end
@@ -42,7 +45,7 @@ class CmccHxy::Client
42
45
  params = {
43
46
  data: "{accesstoken: #{@token}}"
44
47
  }
45
- request("#{CmccHxy.config.hxy_host}/typtOauth/typt/chk_oauth", {params: params})
48
+ request("#{self.host}/typtOauth/typt/chk_oauth", {params: params})
46
49
  end
47
50
 
48
51
  # 第三方应用调用此接口查询业务的开通情况.第三方应用只能查询到有关自己的业务开通情况。
@@ -73,25 +76,12 @@ class CmccHxy::Client
73
76
  params = {
74
77
  data: "{accesstoken:#{@token}, userid:#{uid}}"
75
78
  }
76
- request("#{CmccHxy.config.hxy_host}/typtOauth/typt/qry_order", {params: params})
79
+ request("#{self.host}/typtOauth/typt/qry_order", {params: params})
77
80
  end
78
81
 
79
82
  private
80
83
 
81
84
  def request(url, params)
82
- begin
83
- response = RestClient.get(url, params)
84
- result = JSON.parse(response)
85
- rescue JSON::ParserError
86
- raise CmccHxy::Error.new("移动和校园 JSON 解析出错")
87
- rescue RestClient::ExceptionWithResponse => e
88
- raise CmccHxy::Error.new("移动和校园请求出错 #{e.response.code}")
89
- end
90
-
91
- if response.code == 200 && result.is_a?(Hash) && result.key?('error_code')
92
- raise CmccHxy::Error.new(result.fetch('error_msg'))
93
- end
94
-
95
- result
85
+ CmccHxy::RestClient.new(:get, url, params).request
96
86
  end
97
87
  end
@@ -1,9 +1,8 @@
1
- module CmccHxy
2
- class Config
3
- attr_accessor :hxy_host
4
-
5
- def initialize
6
- @hxy_host = "http://223.86.3.124:8081"
7
- end
1
+ class CmccHxy::Config
2
+ class << self
3
+ attr_accessor :hxy_host, :hxy_sms_host
8
4
  end
5
+
6
+ self.hxy_host = "http://223.86.3.124:8081"
7
+ self.hxy_sms_host = "http://223.86.3.124:8082"
9
8
  end
@@ -0,0 +1,24 @@
1
+ require 'json'
2
+ require 'rest-client'
3
+ require 'cmcc_hxy/error'
4
+
5
+ class CmccHxy::RestClient
6
+ def initialize(method, url, params)
7
+ @method, @url, @params = method, url, params
8
+ end
9
+
10
+ def request
11
+ response = RestClient::Request.execute(method: @method, url: @url, headers: {params: @params})
12
+ result = JSON.parse(response)
13
+ rescue JSON::ParserError
14
+ raise CmccHxy::Error.new("移动和校园 JSON 解析出错")
15
+ rescue RestClient::ExceptionWithResponse => e
16
+ raise CmccHxy::Error.new("移动和校园请求出错 #{e.response.code}")
17
+ else
18
+ if response.code == 200 && result.is_a?(Hash) && result.key?('error_code')
19
+ raise CmccHxy::Error.new(result.fetch('error_msg'))
20
+ end
21
+
22
+ result
23
+ end
24
+ end
@@ -0,0 +1,80 @@
1
+ require 'cmcc_hxy/rest_client'
2
+ require 'cmcc_hxy/config'
3
+
4
+ class CmccHxy::SmsClient
5
+ def initialize(appid)
6
+ @appid = appid
7
+ end
8
+
9
+ # 接口权限:系统接口,需要分配IP鉴权才能调用
10
+ # MsgType:SYS_SEND_SMS_BYMOBILE
11
+ # 接口地址:http:// IP:PORT /typtInterface/interface/SmsSendServlet
12
+ #
13
+ # 请求:第三方应用–>开放平台
14
+ # 参数名称 类型 是否必需 描述
15
+ # ---------------------------------------------------------------
16
+ # appid String 是 第三方应用ID
17
+ # sendmobile String 是 发送人手机号
18
+ # smstype int 是 0:系统 1考勤 2通知 3 消费
19
+ # smscontent String 是 短信内容
20
+ # receivermobile String 是 接收人手机号
21
+ # receivers [{"receivermobile": receivermobile}]
22
+ #
23
+ # 响应:开放平台–>第三方应用
24
+ # 参数名称 类型 是否必需 描述
25
+ # ---------------------------------------------------------------
26
+ # smssn String 是 短信标示唯一码(用于短信报告查询)
27
+ def sys_send_sms(smstype: 0, sendmobile:, smscontent:, phones:)
28
+ params = {
29
+ MsgType: "SYS_SEND_SMS_BYMOBILE",
30
+ Data: {
31
+ appid: @appid,
32
+ smstype: smstype,
33
+ sendmobile: sendmobile,
34
+ smscontent: smscontent,
35
+ receivers: phones.map { |phone| {receivermobile: phone} }
36
+ }.to_json
37
+ }
38
+
39
+ CmccHxy::RestClient.new(:post, url, params).request
40
+ end
41
+
42
+ # 接口权限:系统接口,需要分配权限才能调用
43
+ # MsgType:QRY_SMS_RESULT
44
+ # 接口地址:http:// IP:PORT /typtInterface/interface/SmsSendServlet
45
+ #
46
+ # 请求:第三方应用–>开放平台
47
+ # 参数名称 类型 是否必需 描述
48
+ # ---------------------------------------------------------------
49
+ # smssn String 是 短信标示唯一码(用于短信报告查询)
50
+ #
51
+ # 响应:开放平台–>第三方应用
52
+ # 参数名称 类型 是否必需 描述
53
+ # ---------------------------------------------------------------
54
+ # smssn String 是 短信标示唯一码(用于短信报告查询)
55
+ # sendid int 是 发送人ID
56
+ # sendmobile String 发送人手机号
57
+ # username String 发送人姓名
58
+ # sendcount Int 接收人条数
59
+ # sendtime String 发送时间
60
+ # sends
61
+ # receiverid Int 是 接收人ID
62
+ # receivermobile String 是 接收人手机号
63
+ # receivername String 接收人姓名
64
+ # ismgstatus String 状态报告状态
65
+ # rpttime String 状态报告时间
66
+ def qry_sms_result(smssn)
67
+ params = {
68
+ MsgType: "QRY_SMS_RESULT",
69
+ Data: {appid: @appid, smssn: smssn}.to_json
70
+ }
71
+
72
+ CmccHxy::RestClient.new(:post, url, params).request
73
+ end
74
+
75
+ private
76
+
77
+ def url
78
+ @url ||= "#{CmccHxy::Config.hxy_sms_host}/typtInterface/sms/smsSend"
79
+ end
80
+ end
@@ -1,3 +1,3 @@
1
- module CmccHxy
2
- VERSION = "0.1.1".freeze
1
+ class CmccHxy
2
+ VERSION = "0.2.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cmcc_hxy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
- - lumuy
7
+ - zidcn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-15 00:00:00.000000000 Z
11
+ date: 2020-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '5.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: webmock
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 3.8.3
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 3.8.3
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rest-client
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -68,7 +82,7 @@ dependencies:
68
82
  version: 2.0.2
69
83
  description: CMCC hexiaoyuan API.
70
84
  email:
71
- - dxgnaw@gmail.com
85
+ - zd@zidcn.com
72
86
  executables: []
73
87
  extensions: []
74
88
  extra_rdoc_files: []
@@ -76,7 +90,6 @@ files:
76
90
  - ".gitignore"
77
91
  - ".travis.yml"
78
92
  - Gemfile
79
- - Gemfile.lock
80
93
  - LICENSE.txt
81
94
  - README.md
82
95
  - Rakefile
@@ -87,8 +100,10 @@ files:
87
100
  - lib/cmcc_hxy/client.rb
88
101
  - lib/cmcc_hxy/config.rb
89
102
  - lib/cmcc_hxy/error.rb
103
+ - lib/cmcc_hxy/rest_client.rb
104
+ - lib/cmcc_hxy/sms_client.rb
90
105
  - lib/cmcc_hxy/version.rb
91
- homepage: https://github.com/Lumuy/cmcc_hxy.git
106
+ homepage: https://github.com/zidcn/cmcc_hxy.git
92
107
  licenses:
93
108
  - MIT
94
109
  metadata: {}
@@ -107,8 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
122
  - !ruby/object:Gem::Version
108
123
  version: '0'
109
124
  requirements: []
110
- rubyforge_project:
111
- rubygems_version: 2.7.6
125
+ rubygems_version: 3.1.3
112
126
  signing_key:
113
127
  specification_version: 4
114
128
  summary: CMCC hxy.
@@ -1,38 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- cmcc_hxy (0.1.1)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- domain_name (0.5.20180417)
10
- unf (>= 0.0.5, < 1.0.0)
11
- http-cookie (1.0.3)
12
- domain_name (~> 0.5)
13
- mime-types (3.2.2)
14
- mime-types-data (~> 3.2015)
15
- mime-types-data (3.2018.0812)
16
- minitest (5.11.3)
17
- netrc (0.11.0)
18
- rake (10.5.0)
19
- rest-client (2.0.2)
20
- http-cookie (>= 1.0.2, < 2.0)
21
- mime-types (>= 1.16, < 4.0)
22
- netrc (~> 0.8)
23
- unf (0.1.4)
24
- unf_ext
25
- unf_ext (0.0.7.5)
26
-
27
- PLATFORMS
28
- ruby
29
-
30
- DEPENDENCIES
31
- bundler (~> 1.16)
32
- cmcc_hxy!
33
- minitest (~> 5.0)
34
- rake (~> 10.0)
35
- rest-client (~> 2.0.2)
36
-
37
- BUNDLED WITH
38
- 1.16.2