cmcc_hxy 0.1.5 → 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: 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