@@ -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