-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.coffee
More file actions
executable file
·136 lines (115 loc) · 3.83 KB
/
Copy pathapp.coffee
File metadata and controls
executable file
·136 lines (115 loc) · 3.83 KB
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
###
Module dependencies.
###
express = require("express")
index = require("./routes/index")
user = require("./routes/user")
application = require("./routes/application")
http = require("http")
path = require("path")
mongoose = require("mongoose")
MongoStore = require("connect-mongo")(express)
hbs = require('hbs')
conf =
db: {
db: 'test',
host: 'davidxu.me',
#host: 'localhost',
port: 27017,
username: '',
password: '',
collection: 'sessions'
},
secret: 'this is a secret yo'
app = express()
app.configure ->
app.set "port", process.env.PORT or 3000
app.set "views", __dirname + "/views"
# handlebars support while reading files as .html
app.set 'view engine', 'html'
app.engine 'html', require('hbs').__express
app.use express.favicon()
app.use express.logger("dev")
app.use express.bodyParser()
app.use express.cookieParser()
app.use express.session
secret: conf.secret,
maxAge: new Date(Date.now() + 3600000),
store: new MongoStore(conf.db)
app.use express.methodOverride()
app.use app.router
app.use express.static(path.join(__dirname, "public"))
app.configure "development", ->
app.use express.errorHandler()
db_uri = 'mongodb://'
# if username and password exist
if conf.db.username and conf.db.password
console.log 'there is a username and password'
db_uri += conf.db.username + ':' + conf.db.password + '@'
db_uri += conf.db.host + ':' + conf.db.port + '/' + conf.db.db
console.log db_uri
mongoose.connect db_uri
db = mongoose.connection
db.on 'error', console.error.bind(console, 'connection error:')
db.once 'open', ->
console.log 'Connected to the database.'
# existing routes
app.get "/", index.index
app.get "/grid", index.grid
# Users
app.get "/users", user.list
app.get "/users.json", user.json_all
app.get "/users/:id.json", user.view
app.get "/users/:id/reset_whitelist", user.reset_whitelist
app.get "/users/:id/whitelist.json", user.whitelist
app.get "/users/whitelist", user.whitelist_session
app.post "/users/allow", user.allow
app.post "/users/disallow", user.disallow
app.post "/users/delete_app", user.delete_app #untested
app.post "/users/whitelist_add", user.whitelist_add
app.post "/users/whitelist_remove", user.whitelist_remove
app.get "/register", user.register_get
app.post "/register", user.register_post
app.get "/login", user.login_get
app.post "/login", user.login_post
app.get "/logout", user.logout
app.get "/manage", user.manage
# Applications
app.get "/apps.json", application.json_all
app.post "/apps/open", application.open
app.post "/apps/close", application.close
app.post "/apps/focus", application.focus
app.post "/apps/unfocus", application.unfocus
app.post "/apps/focus_pair", application.focus_pair
app.post "/apps/delete", application.delete
app.post "/apps/create", application.create
app.get "/apps/new", application.new_test # just for testing
app.get "/apps/:id.json", application.view
app.get "/apps/user", application.get_by_user # apps specific to a user - should probably rename
app.post "/apps/category", application.update_category
app.get "/apps/userallowed", application.get_apps_on_whitelist
# handlebars templates
# hbs.registerPartial('home', 'home')
blocks = {}
hbs.registerHelper 'extend', (name, context) =>
console.log context
console.log context.fn @
console.log name
block = blocks[name]
if not block
block = blocks[name] = []
block.push(context.fn @)
return
hbs.registerHelper 'block', (name) ->
val = (blocks[name] || []).join('\n')
blocks[name] = []
return val
server = http.createServer(app).listen app.get("port"), ->
console.log "Express server listening on port " + app.get("port")
# socket.io code
io = require("socket.io").listen(server)
io.sockets.on 'connection', (socket) ->
socket.emit 'news', { hello: 'world'}
# sample event
socket.on 'custom_event', (data) ->
console.log data