cmcc_hxy 0.1.2 → 0.2.1

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: 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