-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapplication.rb
62 lines (47 loc) · 1.43 KB
/
application.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
require 'bundler'
Bundler.require
require './lib/database'
require './lib/core_ext/hash'
DB = Database.establish_connection
require './app/models/user'
require './app/models/festival'
require './app/models/artist'
require './app/models/genre'
require './app/models/bio'
require './graph/interfaces/name_id_interface'
require './graph/types/base_type'
require './graph/types/artist_type'
require './graph/types/festival_type'
require './graph/types/user_type'
require './graph/types/worker_message_type'
require './graph/resolvers/base_resolver'
require './graph/resolvers/users_resolver'
require './graph/resolvers/user_resolver'
require './graph/resolvers/festivals_resolver'
require './graph/resolvers/worker_messages_resolver'
require './graph/mutations/base_mutation'
require './graph/mutations/festival_mutation'
require './graph/types/query_type'
require './graph/types/mutation_type'
require './graph/schema'
class GraphQLExample < Sinatra::Base
use Rack::PostBodyContentTypeParser
use Rack::Cors do
allow do
origins %w(localhost:4000) # graphiql
resource '*', :headers => :any,
:methods => [:post, :options], credentials: true
end
end
set :static, :enable
post "/graph" do
result = Graph::GraphQLExampleSchema.execute(params[:query], {
variables: params[:variables]
})
content_type :json
halt(200, {}, result.to_json)
end
get "/heartbeat" do
halt(200, {}, "OK")
end
end