0.0.10 | Built motion from commit dfb8c0e.
[motion.git] / server / routes.js
1 /**
2  * Main application routes
3  */
4
5 'use strict';
6
7 var config = require('./config/environment');
8 var errors = require('./components/errors');
9 var path = require('path');
10 var moment = require('moment');
11
12 module.exports = function(app) {
13   var env = app.get('env');
14
15   // Insert routes below
16   app.use('/api/desk/accounts', require('./api/desk_account'));
17   app.use('/api/analytic/reports', require('./api/report'));
18   app.use('/api/updates', require('./api/update'));
19   app.use('/api/report/chat/sessions', require('./api/report_chat_session'));
20   app.use('/api/zendesk/fields', require('./api/zendesk_field'));
21   app.use('/api/report/chats', require('./api/report_chat'));
22   app.use('/api/zendesk/configurations', require('./api/zendesk_configuration'));
23   app.use('/api/motionbar', require('./api/motionbar'));
24   app.use('/api/report/mail/sessions', require('./api/report_mail_session'));
25   app.use('/api/report/mails', require('./api/report_mail'));
26   app.use('/api/widgets', require('./api/widget'));
27   app.use('/api/zendesk/accounts', require('./api/zendesk_account'));
28   app.use('/api/report/queues', require('./api/report_queue'));
29   app.use('/api/report/agents', require('./api/report_agent'));
30   app.use('/api/dashboards', require('./api/dashboard'));
31   app.use('/api/settings', require('./api/setting'));
32   app.use('/api/triggers', require('./api/trigger'));
33   app.use('/api/automations', require('./api/automation'));
34   app.use('/api/mail/templates', require('./api/mail_template'));
35   app.use('/api/ami', require('./api/ami'));
36   app.use('/api/integrations', require('./api/integration'));
37   app.use('/api/voice/musiconholds', require('./api/voice_musiconhold'));
38   app.use('/api/voice/voicemails', require('./api/voice_voicemail'));
39   app.use('/api/contactmanager', require('./api/contact_manager'));
40   app.use('/api/fax/business/automations', require('./api/fax_business_automation'));
41   app.use('/api/mail/business/automations', require('./api/mail_business_automation'));
42   app.use('/api/business/actions', require('./api/business_action'));
43   app.use('/api/business/conditions', require('./api/business_condition'));
44   app.use('/api/intervals', require('./api/interval'));
45   app.use('/api/voice/extensions', require('./api/voice_extension'));
46   app.use('/api/voice/contexts', require('./api/voice_context'));
47   app.use('/api/voice/user_has_queues', require('./api/user_has_voice_queue'));
48   app.use('/api/voice/queues', require('./api/voice_queue'));
49   app.use('/api/voice/queue', require('./api/voice_queue'));
50   app.use('/api/trunks', require('./api/trunk'));
51   app.use('/api/chat/applications', require('./api/chat_application'));
52   app.use('/api/chat/user_has_queues', require('./api/user_has_chat_queue'));
53   app.use('/api/events', require('./api/event'));
54   app.use('/api/square/odbc', require('./api/square_odbc'));
55   app.use('/api/fax/applications', require('./api/fax_application'));
56   app.use('/api/fax/user_has_queues', require('./api/user_has_fax_queue'));
57   app.use('/api/fax/queues', require('./api/fax_queue'));
58   app.use('/api/mail/attachments', require('./api/mail_attachment'));
59   app.use('/api/user_has_teams', require('./api/user_has_team'));
60   app.use('/api/variables', require('./api/variable'));
61   app.use('/api/tags', require('./api/tag'));
62   app.use('/api/square/projects', require('./api/square_project'));
63   app.use('/api/chat/queues', require('./api/chat_queue'));
64   app.use('/api/fax/messages', require('./api/fax_message'));
65   app.use('/api/fax/rooms', require('./api/fax_room'));
66   app.use('/api/fax/accounts', require('./api/fax_account'));
67   app.use('/api/agents', require('./api/agent'));
68   app.use('/api/chat/enquiries', require('./api/chat_enquiry'));
69   app.use('/api/chat/messages', require('./api/chat_message'));
70   app.use('/api/chat/rooms', require('./api/chat_room'));
71   app.use('/api/chat/visitors', require('./api/chat_visitor'));
72   app.use('/api/chat/websites', require('./api/chat_website'));
73   app.use('/api/chat/queues', require('./api/chat_queue'));
74   app.use('/api/contacts', require('./api/contact'));
75   app.use('/api/mail/accounts', require('./api/mail_account'));
76   app.use('/api/mail/messages', require('./api/mail_message'));
77   app.use('/api/mail/rooms', require('./api/mail_room'));
78   app.use('/api/mail/servers/in', require('./api/mail_server_in'));
79   app.use('/api/mail/servers/out', require('./api/mail_server_out'));
80   app.use('/api/mail/queues', require('./api/mail_queue'));
81   app.use('/api/mail/user_has_queues', require('./api/user_has_mail_queue'));
82   app.use('/api/mail/applications', require('./api/mail_application'));
83   app.use('/api/teams', require('./api/team'));
84   app.use('/api/uploads', require('./api/upload'));
85   app.use('/api/users', require('./api/user'));
86   app.use('/api/chat/user_has_rooms', require('./api/user_has_chat_room'));
87   app.use('/api/xchatty', require('./api/xchatty'));
88   app.use('/auth', require('./auth'));
89
90   // All undefined asset or api routes should return a 404
91   app.route('/:url(api|auth|components|app|bower_components|assets)/*').get(
92     errors[404]);
93
94   // All other routes should redirect to the index.html
95   app.all("/*", function(req, res, next) {
96
97     var options = {};
98
99     if ('production' === env) {
100       options.root = path.join(config.root, 'public');
101     }
102
103     if ('development' === env || 'test' === env) {
104       options.root = path.join(config.root, 'client');
105     }
106
107     res.sendFile('index.html', options);
108   });
109
110   // app
111   //   .route('/*')
112   //   .get(function(req, res) {
113   //
114   //     var options = {
115   //       root: config.root,
116   //       dotfiles: 'deny',
117   //       headers: {
118   //         'x-timestamp': Date.now(),
119   //         'x-sent': true
120   //       }
121   //     };
122   //
123   //     res.sendFile('index.html', options);
124   //   });
125 };