cmcc_hxy 0.1.5 → 0.2.0

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
  SHA256:
3
- metadata.gz: d35198e39339612728d952bd2e8d30cebcbc503f39855222d0e58c1633f4c6d2
4
- data.tar.gz: a0607454992b8cd04eeb799c0eccd7ed05fdfd1b91d904cf5cbdf851ce9c8ce3
3
+ metadata.gz: 5bd2ac9ea657119d886c6603654661fb99c666ab06dac227bd3091b6560c11db
4
+ data.tar.gz: 38eebbbde7b839491f5cff2c5313254c96cef521d38ba62475c6aff0c6e33e96
5
5
  SHA512:
6
- metadata.gz: 6a19349c473867db1f8385f78d78f17308f206ae733615988de86b8dce31d9efd8398cdf5c6cb81498678709cc004cea08ae7b6cf8f247a0ba5424a426ff2779
7
- data.tar.gz: 5536f399f094f7396b3c1026f81a840b7f914793b44bf67acc213260f5a3abcdf7e128766b3c261ba778038624afb12fb5774739773522c777bef4e704a1ad66
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
@@ -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
@@ -2,5 +2,6 @@ class CmccHxy
2
2
  end
3
3
 
4
4
  require "cmcc_hxy/client"
5
+ require "cmcc_hxy/sms_client"
5
6
  require "cmcc_hxy/config"
6
7
  require "cmcc_hxy/version"
@@ -1,6 +1,4 @@
1
- require 'json'
2
- require 'rest-client'
3
- require 'cmcc_hxy/error'
1
+ require 'cmcc_hxy/rest_client'
4
2
  require 'cmcc_hxy/config'
5
3
 
6
4
  class CmccHxy::Client
@@ -84,19 +82,6 @@ class CmccHxy::Client
84
82
  private
85
83
 
86
84
  def request(url, params)
87
- begin
88
- response = RestClient.get(url, params)
89
- result = JSON.parse(response)
90
- rescue JSON::ParserError
91
- raise CmccHxy::Error.new("移动和校园 JSON 解析出错")
92
- rescue RestClient::ExceptionWithResponse => e
93
- raise CmccHxy::Error.new("移动和校园请求出错 #{e.response.code}")
94
- end
95
-
96
- if response.code == 200 && result.is_a?(Hash) && result.key?('error_code')
97
- raise CmccHxy::Error.new(result.fetch('error_msg'))
98
- end
99
-
100
- result
85
+ CmccHxy::RestClient.new(:get, url, params).request
101
86
  end
102
87
  end
@@ -1,7 +1,8 @@
1
1
  class CmccHxy::Config
2
2
  class << self
3
- attr_accessor :hxy_host
3
+ attr_accessor :hxy_host, :hxy_sms_host
4
4
  end
5
5
 
6
6
  self.hxy_host = "http://223.86.3.124:8081"
7
+ self.hxy_sms_host = "http://223.86.3.124:8082"
7
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
1
  class CmccHxy
2
- VERSION = "0.1.5".freeze
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.5
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
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
@@ -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,6 +100,8 @@ 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
106
  homepage: https://github.com/zidcn/cmcc_hxy.git
92
107
  licenses:
@@ -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.5)
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