Skip to content

Commit 37e86eb

Browse files
author
Olaf Kwant
committed
installed json
1 parent ac0c3ac commit 37e86eb

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

lib/zendesk_apps_tools/server.rb

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,49 @@ class Server < Sinatra::Base
1010
set :protection, except: :frame_options
1111
ZENDESK_DOMAINS_REGEX = %r{^http(?:s)?://[a-z0-9-]+\.(?:zendesk|zopim|futuresimple|local.futuresimple|zendesk-(?:dev|master|staging))\.com$}
1212

13+
get '/app.json' do
14+
server_installed_json
15+
end
16+
1317
get '/app.js' do
1418
serve_installed_js
1519
end
1620

1721
enable :cross_origin
1822

23+
def server_installed_json
24+
access_control_allow_origin
25+
content_type 'text/javascript'
26+
27+
new_settings = settings.settings_helper.refresh!
28+
settings.parameters = new_settings if new_settings
29+
30+
package = ZendeskAppsSupport::Package.new(settings.root, false)
31+
app_name = package.manifest.name || 'Local App'
32+
33+
app_obj = package.obj(
34+
app_id: settings.app_id,
35+
app_name: app_name,
36+
assets_dir: "http://localhost:#{settings.port}/",
37+
locale: params['locale']
38+
)
39+
40+
installation = {
41+
app_id: settings.app_id,
42+
app_name: app_name,
43+
collapsible: true,
44+
created_at: Time.now.iso8601,
45+
enabled: true,
46+
id: settings.app_id,
47+
plan: { name: settings.plan },
48+
requirements: package.requirements_json,
49+
settings: settings.parameters.merge(title: app_name),
50+
updated_at: Time.now.iso8601
51+
}
52+
53+
ZendeskAppsSupport::Installed.new([app_obj], [installation]).obj.to_json
54+
end
55+
1956
def serve_installed_js
2057
access_control_allow_origin
2158
content_type 'text/javascript'

0 commit comments

Comments
 (0)