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