cmcc_hxy 0.1.2 → 0.2.1

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: 91163d05dda4dacd6f23db4a09e8cfd32de03c2f63c77e738572f6b379407fb8
4
- data.tar.gz: d7e33f5138aee14cb4fa662cd93eb191f7d601492577f641f1f7ac82f79e7bff
3
+ metadata.gz: 984f0fe27aae09d51cbccf73b62fe2ca7e1a48372349108c434b995ad40db484
4
+ data.tar.gz: '086cd02e91661014e756532606bf97aeb47090f20f8c883f413ca5500fc28be0'
5
5
  SHA512:
6
- metadata.gz: 129205aa386b7714873259315549da0e674509f54d6ee69776055f9f7ffee209473e37494c6559b51b62afafc29871b2397c3044f017d2626232896ad6cd8c32
7
- data.tar.gz: 05ec3cea1fe7598949ef1a06b5e7c3a2101dd2d8495a358247ccf808033ba425b58ad9f69f933e9acbb5e0035fda5245016ec051c7bec53367558bb065293aba
6
+ metadata.gz: d1eb30f68f8e50b1962e55bd2b5dd88599ee0e69302a7892ae6dcb397f00d6685598bc7e314fc9e83a562da37a055538431688a81dec40cfa81713948d93902b
7
+ data.tar.gz: f1528e3e91219cba965eb878f6ede988d078901895c90dc6e18aad57ca14b5f9644f5f3db5f2cfd3459d5dba99cdb72bb397d67298fe84429d9e780be8a98861
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
 
@@ -24,8 +24,9 @@ Gem::Specification.new do |spec|
24
24
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
25
  spec.require_paths = ["lib"]
26
26
 
27
- spec.add_development_dependency "bundler", "~> 1.16"
27
+ spec.add_development_dependency "bundler", "~> 2.1.4"
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,6 +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
- end
@@ -1,6 +1,5 @@
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)
@@ -83,19 +82,6 @@ class CmccHxy::Client
83
82
  private
84
83
 
85
84
  def request(url, params)
86
- begin
87
- response = RestClient.get(url, params)
88
- result = JSON.parse(response)
89
- rescue JSON::ParserError
90
- raise CmccHxy::Error.new("移动和校园 JSON 解析出错")
91
- rescue RestClient::ExceptionWithResponse => e
92
- raise CmccHxy::Error.new("移动和校园请求出错 #{e.response.code}")
93
- end
94
-
95
- if response.code == 200 && result.is_a?(Hash) && result.key?('error_code')
96
- raise CmccHxy::Error.new(result.fetch('error_msg'))
97
- end
98
-
99
- result
85
+ CmccHxy::RestClient.get(url, params)
100
86
  end
101
87
  end
@@ -1,9 +1,8 @@
1
- module CmccHxy
2
- class Config
3
- class << self
4
- attr_accessor :hxy_host
5
- end
6
-
7
- self.hxy_host = "http://223.86.3.124:8081"
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,32 @@
1
+ require 'json'
2
+ require 'rest-client'
3
+ require 'cmcc_hxy/error'
4
+
5
+ class CmccHxy::RestClient
6
+ class << self
7
+ def get(url, params)
8
+ request { RestClient.get(url, params) }
9
+ end
10
+
11
+ def post(url, params)
12
+ request { RestClient.post(url, params) }
13
+ end
14
+
15
+ private
16
+
17
+ def request
18
+ response = yield
19
+ result = JSON.parse(response)
20
+
21
+ if response.code == 200 && result.is_a?(Hash) && result.key?('error_code')
22
+ raise CmccHxy::Error.new(result.fetch('error_msg'))
23
+ end
24
+
25
+ result
26
+ rescue JSON::ParserError
27
+ raise CmccHxy::Error.new("移动和校园 JSON 解析出错")
28
+ rescue RestClient::ExceptionWithResponse => e
29
+ raise CmccHxy::Error.new("移动和校园请求出错 #{e.response.code}")
30
+ end
31
+ end
32
+ 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.post(url, params)
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.post(url, params)
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.2".freeze
1
+ class CmccHxy
2
+ VERSION = "0.2.1".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.2
4
+ version: 0.2.1
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-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
19
+ version: 2.1.4
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.16'
26
+ version: 2.1.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -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.2)
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