1 # This file is part of NIT ( http://www.nitlanguage.org ).
3 # Copyright 2014 Alexis Laferrière <alexis.laf@xymus.net>
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
17 # Web server for Benitlux
22 import benitlux_controller
23 import benitlux_restful
26 fun iface
: String do return "localhost:8080"
28 # Listening interface for admin commands
29 fun iface_admin
: String do return "localhost:8081"
32 var db_path
= "benitlux_sherbrooke.db"
33 var db
= new BenitluxDB.open
(db_path
)
34 var db_error
= db
.error
35 if db_error
!= null then
41 var vh
= new VirtualHost(iface
)
42 vh
.routes
.add
new Route("/rest/", new BenitluxRESTAction(db
))
43 vh
.routes
.add
new Route("/push/", new BenitluxPushAction(db
))
44 vh
.routes
.add
new Route(null, new BenitluxSubscriptionAction(db
))
46 var vh_admin
= new VirtualHost(iface_admin
)
47 vh_admin
.routes
.add
new Route(null, new BenitluxAdminAction(db
))
49 var factory
= new HttpFactory.and_libevent
50 factory
.config
.virtual_hosts
.add vh
51 factory
.config
.virtual_hosts
.add vh_admin
53 print
"Launching server on http://{iface}/ and http://{iface_admin}/"