ku6vms_sdk 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -7,4 +7,6 @@ gem 'eventmachine'
7
7
  gem 'em-http-request'
8
8
  gem 'rspec'
9
9
  gem 'mocha'
10
+ gem 'nokogiri'
11
+ gem 'nori'
10
12
  gem 'debugger'
data/Gemfile.lock CHANGED
@@ -26,6 +26,8 @@ GEM
26
26
  mocha (0.12.3)
27
27
  metaclass (~> 0.0.1)
28
28
  multipart_body (0.2.1)
29
+ nokogiri (1.5.10)
30
+ nori (2.3.0)
29
31
  rspec (2.14.1)
30
32
  rspec-core (~> 2.14.0)
31
33
  rspec-expectations (~> 2.14.0)
@@ -44,4 +46,6 @@ DEPENDENCIES
44
46
  eventmachine
45
47
  mocha
46
48
  multipart_body
49
+ nokogiri
50
+ nori
47
51
  rspec
@@ -23,7 +23,7 @@ module GrandCloud
23
23
  request_params = {}
24
24
  request_params.merge!(options[:timeout]) if options[:timeout]
25
25
 
26
- params = {:head => {:Accept => options[:header_accept] || 'application/json'}}
26
+ params = {:head => {:Accept => options[:header_accept] || 'application/xml'}}
27
27
  params.merge!(options[:request_params]) if options[:request_params]
28
28
  EM::HttpRequest.new(url, request_params).send((options[:method] && options[:method].downcase) || "get", params)
29
29
  end
@@ -1,5 +1,5 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
3
  module GrandCloud
4
- VERSION = '0.1.6'
4
+ VERSION = '0.1.7'
5
5
  end
@@ -9,7 +9,7 @@ module GrandCloud
9
9
  json = common_request do
10
10
  Base.send_request({:method => 'get', :uri => "/video/#{id}"})
11
11
  end
12
- wrap_object(json['video'])
12
+ wrap_object(json['DetailVideoResponse']['video'])
13
13
  rescue Error::ResponseError => e
14
14
  GrandCloud.logger.error(e)
15
15
  return nil
@@ -29,7 +29,7 @@ module GrandCloud
29
29
  :BypassEncoding => pass_encoding
30
30
  }
31
31
  })
32
- creation.callback { block.call(JSON.parse(creation.response)) }
32
+ creation.callback { block.call(GrandCloud.nori.parse(creation.response)['CreateVideoResponse']) }
33
33
 
34
34
  creation.errback do
35
35
  GrandCloud.logger.error("Error is: #{creation.error}, requesting error...")
@@ -117,7 +117,7 @@ module GrandCloud
117
117
  }
118
118
  })
119
119
  end
120
- json['returnValue']
120
+ json['ModifyVideoResponse']['return']
121
121
  rescue Error::ResponseError => e
122
122
  GrandCloud.logger.error(e)
123
123
  return false
@@ -130,7 +130,7 @@ module GrandCloud
130
130
  :uri => "/videos/#{id}"
131
131
  })
132
132
  end
133
- json['returnValue']
133
+ json['RemoveVideosResponse']['return']
134
134
  rescue Error::ResponseError => e
135
135
  GrandCloud.logger.error(e)
136
136
  return false
@@ -140,7 +140,7 @@ module GrandCloud
140
140
  json = common_request do
141
141
  Base.send_request({:method => 'get', :uri => "/videos"})
142
142
  end
143
- json['videoSet'].map{|v| wrap_object(v) }
143
+ json['ListVideoResponse']['videoSet']['item'].map{|v| wrap_object(v) }
144
144
  rescue Error::ResponseError => e
145
145
  GrandCloud.logger.error(e)
146
146
  return []
@@ -196,7 +196,7 @@ module GrandCloud
196
196
  def get_default_program_id
197
197
  programs = get_programs
198
198
  unless programs.empty?
199
- result = programs['programSet'].select{|a| a['programName'] == '默认方案'}
199
+ result = programs['ListProgramsResponse']['programSet'].select{|a| a['programName'] == '默认方案'}
200
200
  result.empty? ? nil : result[0]['programId']
201
201
  else
202
202
  nil
@@ -211,13 +211,15 @@ module GrandCloud
211
211
  def callback req, func=nil, additional_attributes=nil
212
212
  response = EM::DefaultDeferrable.new
213
213
  req.callback do
214
- rep = req.response.blank? ? {'code' => req.response_header.status} : JSON.parse(req.response)
215
- if rep['errors']
214
+ rep = req.response.blank? ? {'code' => req.response_header.status} : GrandCloud.nori.parse(req.response)
215
+ rep = JSON.parse(req.response) if rep.blank?
216
+ if (rep['Response'] && rep['Response']['errors']) || rep['HR']
216
217
  response.fail(rep)
217
218
  else
218
219
  response.succeed(additional_attributes ? rep.merge!(additional_attributes) : rep)
219
220
  end
220
- raise Error::ResponseError.new(rep['errors'][0]) if rep['errors']
221
+ raise Error::ResponseError.new(rep['Response']['errors']['message']) if rep['Response'] && ['Response']['errors']
222
+ raise Error::ResponseError.new('Ku6vms Internal error ...') if rep['HR']
221
223
  func.call(rep) if func
222
224
  EM.stop
223
225
  end
data/lib/grandcloud.rb CHANGED
@@ -16,17 +16,22 @@ require 'grand_cloud/authentication'
16
16
  require 'grand_cloud/base'
17
17
  require 'grand_cloud/video'
18
18
  require 'grand_cloud/version'
19
+ require 'nokogiri'
20
+ require 'nori'
19
21
  require 'debugger'
20
22
 
21
23
  module GrandCloud
22
24
 
23
25
  DEFAULT_HOST_URL = "api.ku6vms.com"
24
26
 
25
- attr_reader :logger
27
+ attr_reader :logger, :nori
26
28
 
27
29
  def self.logger
28
30
  @logger || (@logger = Logger.new(STDOUT))
29
31
  end
30
32
 
33
+ def self.nori
34
+ @nori || Nori.new
35
+ end
31
36
 
32
37
  end
@@ -26,7 +26,6 @@ module GrandCloud
26
26
  @video.run do
27
27
  @video.pull_by_vms('spec_pull_video', 'http://storage-huadong-1.sdcloud.cn/images.jiaoxuebang.com/MOV_0399.mp4?SNDAAccessKeyId=BH297OBMKFV0T2LO9MC189P2J&Expires=1377147099&Signature=JpbNOKlBc7SD4%2FYKIiPz8HJDHf4%3D'){ |rep|
28
28
  puts rep
29
- debugger
30
29
  rep['code'].should == 202
31
30
  }
32
31
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ku6vms_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-09-02 00:00:00.000000000 Z
12
+ date: 2013-09-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: em-http-request