discourse_theme 0.1.6 → 0.1.7

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: 2ae10d6ff12ed0ef1f90fdb5dea7b651838b9aa0
4
- data.tar.gz: 41988a300ce1a6707c48ea3def6d3105b85c22a3
3
+ metadata.gz: 5aeb29aae52cfe3e665464d04e2b8813a2bc7128
4
+ data.tar.gz: 31b93b745ce43c33598e60fc2009ebaa59f15a87
5
5
  SHA512:
6
- metadata.gz: 523d613933d74ce58989b1f506f314a1f253f13a17fdc0c368a80be1e2aeaabc79c26832caa825031f358c94c4980bb71b8afd8652ee8a234212981c88fb7a02
7
- data.tar.gz: f88e0f0cacdbd905b54153f5f55e55b21416ae600fdab7c2ac6008a796b34ace524a62be2efe9f46bb3583a8b6fff76141b09ab1ba464f1225da095516c03ee1
6
+ metadata.gz: e4c8a5dd67329602d0941fe25d96a533699b255572abf99cbd649d7e68b84c10685b6b002bab80e90a605b3905f4402b0723dac8fe1f49e0e1c36c6ccd1e021d
7
+ data.tar.gz: bc614b8b759385faa5d6fe8834d4a3eaea8e770625c9e7c267225fff40ff150ba24424939504c5cb6e6153ad970a1dcf5bbd2723ce5711b5786a800fe91f8d51
@@ -22,6 +22,8 @@ class DiscourseTheme::Scaffold
22
22
  mobile/footer.html
23
23
  mobile/head_tag.html
24
24
  mobile/body_tag.html
25
+
26
+ settings.yml
25
27
  }
26
28
 
27
29
  ABOUT_JSON = <<~STR
@@ -1,9 +1,12 @@
1
1
  class DiscourseTheme::Uploader
2
2
 
3
+ THEME_CREATOR_REGEX = /^https:\/\/theme-creator.discourse.org$/i
4
+
3
5
  def initialize(dir:, api_key:, site:)
4
6
  @dir = dir
5
7
  @api_key = api_key
6
8
  @site = site
9
+ @is_theme_creator = !!(THEME_CREATOR_REGEX =~ site)
7
10
  @theme_id = nil
8
11
  end
9
12
 
@@ -55,14 +58,20 @@ class DiscourseTheme::Uploader
55
58
  }
56
59
  }
57
60
 
58
- uri = URI.parse(@site + "/admin/themes/#{@theme_id}?api_key=#{@api_key}")
61
+ endpoint =
62
+ if @is_theme_creator
63
+ "/user_themes/#{@theme_id}"
64
+ else
65
+ "/admin/themes/#{@theme_id}?api_key=#{@api_key}"
66
+ end
59
67
 
68
+ uri = URI.parse(@site + endpoint)
60
69
  http = Net::HTTP.new(uri.host, uri.port)
61
70
  http.use_ssl = URI::HTTPS === uri
62
71
 
63
72
  request = Net::HTTP::Put.new(uri.request_uri, 'Content-Type' => 'application/json')
64
73
  request.body = args.to_json
65
-
74
+ add_headers(request)
66
75
  http.start do |h|
67
76
  response = h.request(request)
68
77
  if response.code.to_i == 200
@@ -80,8 +89,14 @@ class DiscourseTheme::Uploader
80
89
  filename = "#{Pathname.new(Dir.tmpdir).realpath}/bundle_#{SecureRandom.hex}.tar.gz"
81
90
  compress_dir(filename, @dir)
82
91
 
83
- # new full upload endpoint
84
- uri = URI.parse(@site + "/admin/themes/import.json?api_key=#{@api_key}")
92
+ endpoint =
93
+ if @is_theme_creator
94
+ "/user_themes/import.json"
95
+ else
96
+ "/admin/themes/import.json?api_key=#{@api_key}"
97
+ end
98
+
99
+ uri = URI.parse(@site + endpoint)
85
100
  http = Net::HTTP.new(uri.host, uri.port)
86
101
  http.use_ssl = URI::HTTPS === uri
87
102
  File.open(filename) do |tgz|
@@ -90,6 +105,7 @@ class DiscourseTheme::Uploader
90
105
  uri.request_uri,
91
106
  "bundle" => UploadIO.new(tgz, "application/tar+gzip", "bundle.tar.gz"),
92
107
  )
108
+ add_headers(request)
93
109
  response = http.request(request)
94
110
  if response.code.to_i == 201
95
111
  json = JSON.parse(response.body)
@@ -107,4 +123,12 @@ class DiscourseTheme::Uploader
107
123
  ensure
108
124
  FileUtils.rm_f filename
109
125
  end
126
+
127
+ private
128
+
129
+ def add_headers(request)
130
+ if @is_theme_creator
131
+ request["User-Api-Key"] = @api_key
132
+ end
133
+ end
110
134
  end
@@ -1,3 +1,3 @@
1
1
  module DiscourseTheme
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: discourse_theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Saffron
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-15 00:00:00.000000000 Z
11
+ date: 2018-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler