cmcc_hxy 0.1.1 → 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 +4 -4
- data/.gitignore +2 -0
- data/cmcc_hxy.gemspec +4 -3
- data/lib/cmcc_hxy.rb +4 -8
- data/lib/cmcc_hxy/client.rb +9 -19
- data/lib/cmcc_hxy/config.rb +6 -7
- data/lib/cmcc_hxy/rest_client.rb +24 -0
- data/lib/cmcc_hxy/sms_client.rb +80 -0
- data/lib/cmcc_hxy/version.rb +2 -2
- metadata +22 -8
- data/Gemfile.lock +0 -38
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 5bd2ac9ea657119d886c6603654661fb99c666ab06dac227bd3091b6560c11db
         | 
| 4 | 
            +
              data.tar.gz: 38eebbbde7b839491f5cff2c5313254c96cef521d38ba62475c6aff0c6e33e96
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: f39de22d0ac1140f48731ecc4bbbc1ee5a4e60360094d97c01a1bebe2dd6b85586fb920b7d27f4639f53bcc2ee6509c4d3a74be8d592c8044e0c07528e8dc4fa
         | 
| 7 | 
            +
              data.tar.gz: 228abea7a4f295108eaf8238f021a593431a9aea333b5d4c0e1c957cdb66bbcf3d6eb79fac312c13cc777ca78bd7fe1ce12328338960184aebe6068b57bf3e2e
         | 
    
        data/.gitignore
    CHANGED
    
    
    
        data/cmcc_hxy.gemspec
    CHANGED
    
    | @@ -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       = [" | 
| 10 | 
            -
              spec.email         = [" | 
| 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/ | 
| 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
         | 
    
        data/lib/cmcc_hxy.rb
    CHANGED
    
    
    
        data/lib/cmcc_hxy/client.rb
    CHANGED
    
    | @@ -1,12 +1,15 @@ | |
| 1 | 
            -
            require ' | 
| 2 | 
            -
            require ' | 
| 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("#{ | 
| 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("#{ | 
| 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 | 
            -
                 | 
| 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
         | 
    
        data/lib/cmcc_hxy/config.rb
    CHANGED
    
    | @@ -1,9 +1,8 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
              class  | 
| 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
         | 
    
        data/lib/cmcc_hxy/version.rb
    CHANGED
    
    | @@ -1,3 +1,3 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
              VERSION = "0. | 
| 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. | 
| 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:  | 
| 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 | 
            -
            -  | 
| 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/ | 
| 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 | 
            -
             | 
| 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.
         | 
    
        data/Gemfile.lock
    DELETED
    
    | @@ -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
         |