glossyapp 0.1.9 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5d580505eb9909f64e97c58e3aa6e822f7eb3f6c
4
- data.tar.gz: 0e1c21b09317e7f827806d51c3e2da40cbeffc1e
3
+ metadata.gz: 783887e5937c63054721cbdb020cfcec02e7d71f
4
+ data.tar.gz: 1fccc4563c990803cdfe1a2a9773654731bf81a5
5
5
  SHA512:
6
- metadata.gz: 120cdde4556886fab487f1c15126e6e1e60ad814d885d97cd2a9f438cb10301f3636c5dd68579122c2c8f1e93eee3686536273baa2b1929e5280fd737feff7e2
7
- data.tar.gz: 67bae257bda06564c813d92d607e0cd1880b31a3caa51e487e02ad8fd56375b0938481ab40aefd2be08c8dbbcd117bb221cd659d7613ba01484fa27209fa8656
6
+ metadata.gz: 023f8bc3ab091ae40291a3346262b9cfb0ef887a62f4744b74cf76faf6a93aaa28e828f01ef72177bf1c6b73d0e5eb4beab8eef3b85c633959cd8432c767e77d
7
+ data.tar.gz: 6d9afc2477c2dce5908add0a2a735f8c2ac1062e569c5ad49e40626b7497d7234eb536d2381d6cef26f9711beb78cdfe419707cfbcef31a2b8721c4058780937
@@ -3,10 +3,7 @@ module GlossyApp
3
3
  class Session
4
4
 
5
5
  def create_file_asset(file_path, asset_folder_id)
6
- # won't work otherwise...
7
- setup_session
8
-
9
- response = @glossy_api.post_multipart("/asset_folders/#{asset_folder_id}/asset_files", {}, { 'asset_file[asset_file]' => file_path })
6
+ response = glossy_post_multipart("/asset_folders/#{asset_folder_id}/asset_files", {}, { 'asset_file[asset_file]' => file_path })
10
7
 
11
8
  if [200, 201].include?(response.status)
12
9
  asset_file = JSON.parse(response.body)
@@ -19,7 +16,7 @@ module GlossyApp
19
16
  end
20
17
 
21
18
  def delete_file_asset(asset_folder_id, asset_file_id)
22
- response = @glossy_api.delete("/asset_folders/#{asset_folder_id}/asset_files/#{asset_file_id}")
19
+ response = glossy_delete("/asset_folders/#{asset_folder_id}/asset_files/#{asset_file_id}")
23
20
  if [200, 201].include?(response.status)
24
21
  return true
25
22
  else
@@ -35,7 +32,7 @@ module GlossyApp
35
32
  }
36
33
  }
37
34
 
38
- response = @glossy_api.post('/asset_folders', data.to_json, {"Content-Type" => "application/json"})
35
+ response = glossy_post('/asset_folders', data.to_json, {"Content-Type" => "application/json"})
39
36
  if [200, 201].include?(response.status)
40
37
  asset_folder = JSON.parse(response.body)
41
38
  return asset_folder['asset_folder']['id']
@@ -45,7 +42,7 @@ module GlossyApp
45
42
  end
46
43
 
47
44
  def delete_assets_folder(assets_folder_id)
48
- response = @glossy_api.delete("/asset_folders/#{assets_folder_id}")
45
+ response = glossy_delete("/asset_folders/#{assets_folder_id}")
49
46
  if [200, 201].include?(response.status)
50
47
  return true
51
48
  else
@@ -54,7 +51,7 @@ module GlossyApp
54
51
  end
55
52
 
56
53
  def asset_folder_with_name_exists?(asset_folder_name, parent_folder_id='root')
57
- response = @glossy_api.get "/asset_folders/#{parent_folder_id}"
54
+ response = glossy_get "/asset_folders/#{parent_folder_id}"
58
55
  if [200].include?(response.status)
59
56
  root = JSON.parse(response.body)
60
57
  root['asset_folder']['children'].each do |folder|
@@ -3,7 +3,7 @@ module GlossyApp
3
3
  class Session
4
4
 
5
5
  def get_document_with_external_id(external_id)
6
- response = @glossy_api.get "/documents"
6
+ response = glossy_get "/documents"
7
7
  if [200].include?(response.status)
8
8
  json = JSON.parse(response.body)
9
9
 
@@ -27,7 +27,7 @@ module GlossyApp
27
27
  end
28
28
 
29
29
  def get_document(document_id)
30
- response = @glossy_api.get "/documents/#{document_id}"
30
+ response = glossy_get "/documents/#{document_id}"
31
31
  if [200].include?(response.status)
32
32
  return JSON.parse(response.body)
33
33
  else
@@ -47,7 +47,7 @@ module GlossyApp
47
47
  }
48
48
  }
49
49
 
50
- response = @glossy_api.post("/documents", post_data.to_json, {"Content-Type" => "application/json"})
50
+ response = glossy_post("/documents", post_data.to_json, {"Content-Type" => "application/json"})
51
51
  if [200, 201].include?(response.status)
52
52
  document = JSON.parse(response.body)
53
53
 
@@ -60,7 +60,7 @@ module GlossyApp
60
60
  end
61
61
 
62
62
  def delete_document(document_id)
63
- response = @glossy_api.delete("/documents/#{document_id}")
63
+ response = glossy_delete("/documents/#{document_id}")
64
64
  if [200, 201].include?(response.status)
65
65
  return true
66
66
  else
@@ -69,7 +69,7 @@ module GlossyApp
69
69
  end
70
70
 
71
71
  def document_exists?(document_id)
72
- response = @glossy_api.get "/documents/#{document_id}"
72
+ response = glossy_get "/documents/#{document_id}"
73
73
  if [200].include?(response.status)
74
74
  doc = JSON.parse(response.body)
75
75
  return document_id.to_s == doc['id'].to_s
@@ -79,7 +79,7 @@ module GlossyApp
79
79
  end
80
80
 
81
81
  def publish_document(document_id)
82
- response = @glossy_api.post("/documents/#{document_id}/publish", {})
82
+ response = glossy_post("/documents/#{document_id}/publish", {})
83
83
  if [200, 201].include?(response.status)
84
84
  return true
85
85
  else
@@ -88,7 +88,7 @@ module GlossyApp
88
88
  end
89
89
 
90
90
  def unpublish_document(document_id)
91
- response = @glossy_api.post("/documents/#{document_id}/unpublish", {})
91
+ response = glossy_post("/documents/#{document_id}/unpublish", {})
92
92
  if [200, 201].include?(response.status)
93
93
  return true
94
94
  else
@@ -97,7 +97,7 @@ module GlossyApp
97
97
  end
98
98
 
99
99
  def import_asset_file_into_document(document_id, asset_file_id)
100
- response = @glossy_api.post("/documents/#{document_id}/import", {:asset_file_id => asset_file_id}.to_json, {"Content-Type" => "application/json"})
100
+ response = glossy_post("/documents/#{document_id}/import", {:asset_file_id => asset_file_id}.to_json, {"Content-Type" => "application/json"})
101
101
  if [200, 201].include?(response.status)
102
102
  return true
103
103
  else
@@ -15,7 +15,7 @@ module GlossyApp
15
15
  }.merge(data)
16
16
  }
17
17
 
18
- response = @glossy_api.post("/documents/#{document_id}/pages/#{page_id}/page_elements", data.to_json, {"Content-Type" => "application/json"})
18
+ response = glossy_post("/documents/#{document_id}/pages/#{page_id}/page_elements", data.to_json, {"Content-Type" => "application/json"})
19
19
  if [200, 201].include?(response.status)
20
20
  json = JSON.parse(response.body)
21
21
  return json['page_element']['id']
@@ -25,7 +25,7 @@ module GlossyApp
25
25
  end
26
26
 
27
27
  def delete_page_element(document_id, page_id, page_element_id)
28
- response = @glossy_api.delete "/documents/#{document_id}/pages/#{page_id}/page_elements/#{page_element_id}"
28
+ response = glossy_delete "/documents/#{document_id}/pages/#{page_id}/page_elements/#{page_element_id}"
29
29
  if [200].include?(response.status)
30
30
  return true
31
31
  else
@@ -9,7 +9,7 @@ module GlossyApp
9
9
  }
10
10
  }
11
11
 
12
- response = @glossy_api.put("/documents/#{document_id}/pages/#{page_id}", post_data.to_json, {"Content-Type" => "application/json"})
12
+ response = glossy_put("/documents/#{document_id}/pages/#{page_id}", post_data.to_json, {"Content-Type" => "application/json"})
13
13
  if [200, 201].include?(response.status)
14
14
  return true
15
15
 
@@ -20,7 +20,7 @@ module GlossyApp
20
20
  end
21
21
 
22
22
  def get_pages(document_id)
23
- response = @glossy_api.get "/documents/#{document_id}/pages"
23
+ response = glossy_get "/documents/#{document_id}/pages"
24
24
  if [200].include?(response.status)
25
25
  return JSON.parse(response.body)
26
26
  else
@@ -29,7 +29,7 @@ module GlossyApp
29
29
  end
30
30
 
31
31
  def page_id_for_page_position(document_id, position)
32
- response = @glossy_api.get "/documents/#{document_id}/pages?positions=#{position}"
32
+ response = glossy_get "/documents/#{document_id}/pages?positions=#{position}"
33
33
  if [200].include?(response.status)
34
34
  json = JSON.parse(response.body)
35
35
  if json['pages'].is_a?(Array) and json['pages'].size > 0
@@ -1,5 +1,6 @@
1
1
  require 'patron'
2
2
  require 'json'
3
+ require 'net/http'
3
4
 
4
5
  require "glossyapp/session/documents"
5
6
  require "glossyapp/session/publications"
@@ -23,11 +24,16 @@ module GlossyApp
23
24
  @proxy = proxy
24
25
  @timeout = timeout
25
26
 
26
- setup_session
27
+ @user_agent = "glossyapp-api-ruby/#{GlossyApp::VERSION}"
28
+
29
+ # Handle Proxy
30
+ if @proxy
31
+ raise "Setting a proxy is no longer supported"
32
+ end
27
33
  end
28
34
 
29
35
  def ping
30
- response = @glossy_api.get "/ping"
36
+ response = glossy_get "/ping"
31
37
  if [200].include?(response.status)
32
38
  return true
33
39
  else
@@ -35,14 +41,27 @@ module GlossyApp
35
41
  end
36
42
  end
37
43
 
38
- # FIXME: remove before publishing
39
- def self.local_dev
40
- GlossyApp::Session.new("1rbsyZyuqyYeUxzsAkpJ", "http://localhost:3000/api/v1")#, 'http://localhost:8888')
41
- end
42
44
 
43
45
  protected
44
46
 
45
- def setup_session
47
+ def glossy_get(path, headers = {})
48
+ request = Net::HTTP::Get.new(build_uri(path))
49
+ return make_request(request, headers)
50
+ end
51
+
52
+ def glossy_put(path, data, headers = {})
53
+ request = Net::HTTP::Put.new(build_uri(path))
54
+ request.body = data
55
+ return make_request(request, headers)
56
+ end
57
+
58
+ def glossy_post(path, data, headers = {})
59
+ request = Net::HTTP::Post.new(build_uri(path))
60
+ request.body = data
61
+ return make_request(request, headers)
62
+ end
63
+
64
+ def glossy_post_multipart(path, data, file, headers = {})
46
65
  @glossy_api = Patron::Session.new
47
66
  @glossy_api.timeout = @timeout
48
67
 
@@ -54,12 +73,53 @@ module GlossyApp
54
73
 
55
74
  @glossy_api.proxy = @proxy
56
75
 
57
- @glossy_api.headers['User-Agent'] = "glossyapp-api-ruby/#{GlossyApp::VERSION}"
76
+ @glossy_api.headers['User-Agent'] = @user_agent
58
77
  @glossy_api.headers['Accept'] = 'application/json'
59
78
 
60
- #@glossy_api.enable_debug STDOUT
79
+ response = @glossy_api.post_multipart(path, data, file, headers)
80
+
81
+ return GlossyResponse.new(response.status, response.body)
82
+ end
83
+
84
+ def glossy_delete(path, headers = {})
85
+ request = Net::HTTP::Delete.new(build_uri(path))
86
+ return make_request(request, headers)
87
+ end
88
+
89
+
90
+
91
+
92
+
93
+ def build_uri(path)
94
+ return URI("#{@base_url}#{path}")
95
+ end
96
+
97
+ def make_request(request, headers)
98
+ request['Accept'] = 'application/json'
99
+ request['User-Agent'] = @user_agent
100
+
101
+ headers.each_pair { |key, value| request[key] = value }
102
+
103
+ request.basic_auth @api_key, ''
104
+
105
+ response = Net::HTTP.start(request.uri.hostname, request.uri.port, :use_ssl => request.uri.scheme == 'https', :read_timeout => @timeout) do |http|
106
+ http.request(request)
107
+ end
108
+
109
+ return GlossyResponse.new(response.code.to_i, response.body)
61
110
  end
62
111
 
112
+
113
+ end
114
+
115
+ class GlossyResponse
116
+ attr_accessor :status
117
+ attr_accessor :body
118
+
119
+ def initialize(status, body)
120
+ @status = status
121
+ @body = body
122
+ end
63
123
  end
64
124
 
65
125
  end
@@ -1,3 +1,3 @@
1
1
  module GlossyApp
2
- VERSION = "0.1.9"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glossyapp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Philipp Schmid
@@ -105,7 +105,6 @@ files:
105
105
  - lib/glossyapp/session/publications.rb
106
106
  - lib/glossyapp/util.rb
107
107
  - lib/glossyapp/version.rb
108
- - old_vanga_main.rb
109
108
  homepage: http://www.glossyapp.com
110
109
  licenses:
111
110
  - MIT
data/old_vanga_main.rb DELETED
@@ -1,154 +0,0 @@
1
-
2
- def create_article(article, gallery = nil, asset_file_id = nil)
3
- post_data = {
4
- 'article' => {
5
- 'title' => article[:title],
6
- 'subtitle' => article[:subtitle],
7
- 'abstract' => article[:pretext],
8
- 'content' => article[:textbody]
9
- }
10
- }
11
-
12
- if gallery
13
- post_data['article']['image_gallery_id'] = gallery[:glossyapp_id]
14
- end
15
-
16
- if asset_file_id
17
- post_data['article']['header_image_asset_file_id'] = asset_file_id
18
- end
19
-
20
- response = @glossy_api.post("/documents/#{@options[:document_id]}/articles", post_data.to_json, {"Content-Type" => "application/json"})
21
- if [200, 201].include?(response.status)
22
- article = JSON.parse(response.body)
23
-
24
- article_id = article['id']
25
- return article_id
26
-
27
- else
28
- raise "Couldn't create article: #{response.inspect}\n#{response.body}"
29
- end
30
- end
31
-
32
-
33
- def toc_section_id_for_section_with_title(title)
34
- response = @glossy_api.get "/documents/#{@options[:document_id]}/toc_sections?title=#{CGI.escape(title)}"
35
- if [200].include?(response.status)
36
- json = JSON.parse(response.body)
37
- if json['toc_sections'].is_a?(Array) and json['toc_sections'].size > 0
38
- return json['toc_sections'].first['id']
39
- else
40
- return nil
41
- end
42
- else
43
- return nil
44
- end
45
- end
46
-
47
- def create_toc_section(title, description)
48
- post_data = {
49
- 'toc_section' => {
50
- 'title' => title,
51
- 'description' => description
52
- }
53
- }
54
-
55
- response = @glossy_api.post("/documents/#{@options[:document_id]}/toc_sections", post_data.to_json, {"Content-Type" => "application/json"})
56
- if [200, 201].include?(response.status)
57
- json = JSON.parse(response.body)
58
- return json['id']
59
- else
60
- raise "Invalid response: #{response.inspect}\n#{response.body}"
61
- end
62
- end
63
-
64
- def create_toc_entry(section_id, title, page_index)
65
- post_data = {
66
- 'toc_entry' => {
67
- 'title' => title,
68
- 'page_index' => page_index
69
- }
70
- }
71
-
72
- response = @glossy_api.post("/documents/#{@options[:document_id]}/toc_sections/#{section_id}/toc_entries", post_data.to_json, {"Content-Type" => "application/json"})
73
- if [200, 201].include?(response.status)
74
- json = JSON.parse(response.body)
75
- return json['id']
76
- else
77
- raise "Invalid response: #{response.inspect}\n#{response.body}"
78
- end
79
- end
80
-
81
-
82
-
83
-
84
-
85
- def old_vanga_main
86
-
87
- # Check if document exists on GlossyApp
88
- if check_if_document_exists
89
- @logger.info "Document #{@options[:document_id]} does exist"
90
- else
91
- raise "Document #{@options[:document_id]} does NOT exist"
92
- end
93
-
94
-
95
- # create assets_folder_for_this_import
96
- asset_folder_id = create_assets_folder("Import of: #{Time.now}")
97
-
98
- # create articles and ToC
99
- articles.each do |article|
100
- # create header image for article
101
- asset_file_id = nil
102
- if article[:url_headerimage_large]
103
- begin
104
- Tempfile.open('article_header_image') do |f|
105
- download_file(article[:url_headerimage_large], f.path)
106
-
107
- asset_file_id = create_file_asset(f.path, asset_folder_id)
108
- end
109
- rescue Exception => e
110
- asset_file_id = nil
111
- end
112
- end
113
-
114
- # create gallery for article
115
- gallery = gallery_from_article(article)
116
- gallery[:glossyapp_id] = create_gallery(gallery) if gallery
117
-
118
- # create article
119
- article_id = create_article(article, gallery, asset_file_id)
120
-
121
- # create ToC entry
122
- unless article[:title].nil? or article[:title].size <= 0
123
- section_id = toc_section_id_for_section_with_title(article[:title])
124
- unless section_id
125
- if article[:title] && article[:subtitle]
126
- section_id = create_toc_section(article[:title], article[:subtitle])
127
- create_toc_entry(section_id, article[:title], article[:pageStart].to_i - 1)
128
- end
129
- end
130
- end
131
-
132
- # create ToC section entries & article_links
133
- article[:pageStart].to_i.upto(article[:pageEnd].to_i) do |page_position|
134
-
135
- # create article_link
136
- page_id = page_id_for_page_position(page_position)
137
- if page_id
138
- create_page_element(page_id,
139
- 0,
140
- 0,
141
- 0,
142
- 0,
143
- 'article_link',
144
- {'article_id' => article_id },
145
- article[:title])
146
- else
147
- @logger.error "Did not find page for article..."
148
- end
149
-
150
- end
151
- end
152
- end
153
-
154
-