From 729cd300b71473a0139286c4adff7aaeb94b12f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Moratinos?= Date: Wed, 22 Jan 2014 23:57:41 +0100 Subject: [PATCH] server reorganize files and folder by features - move and rename files - use associative arrays which store handlers for 'dynamically' load module from de db route - store models_path in test/server/common, a global model variable has the same name that the filename of the model --- server.coffee | 4 +-- server/{models => articles}/Article.coffee | 2 +- .../article_handler.coffee} | 4 +-- .../article_schema.coffee} | 2 +- server/{models => campaigns}/Campaign.coffee | 2 +- .../CampaignStatus.coffee | 0 .../campaign_handler.coffee} | 4 +-- .../campaign_status_handler.coffee} | 4 +-- server/{handlers => commons}/Handler.coffee | 2 +- server/{ => commons}/errors.coffee | 0 .../i18n_schema.coffee} | 2 +- server/{ => commons}/logging.coffee | 0 server/{schemas => commons}/metaschema.coffee | 0 .../common.coffee => commons/schemas.coffee} | 0 server/{models => files}/File.coffee | 2 +- .../file.coffee => files/file_handler.coffee} | 4 +-- .../file.coffee => files/file_schema.coffee} | 2 +- server/{models => levels}/Level.coffee | 4 +-- .../components}/LevelComponent.coffee | 4 +-- .../level_component_handler.coffee} | 4 +-- .../components/level_component_schema.coffee} | 4 +-- .../drafts}/LevelDraft.coffee | 2 +- .../drafts/level_draft_handler.coffee} | 4 +-- .../feedbacks}/LevelFeedback.coffee | 4 +-- .../feedbacks/level_feedback_handler.coffee} | 4 +-- .../feedbacks/level_feedback_schema.coffee} | 2 +- .../level_handler.coffee} | 10 +++--- .../level_schema.coffee} | 4 +-- .../sessions}/LevelSession.coffee | 4 +-- .../sessions/level_session_handler.coffee} | 4 +-- .../sessions/level_session_schema.coffee} | 2 +- .../systems}/LevelSystem.coffee | 4 +-- .../systems/level_system_handler.coffee} | 4 +-- .../systems/level_system_schema.coffee} | 4 +-- .../thangs}/LevelThangType.coffee | 2 +- .../thangs}/ThangType.coffee | 2 +- .../thangs/thang_component_schema.coffee} | 2 +- .../thangs/thang_type_handler.coffee} | 4 +-- .../thangs/thang_type_schema.coffee} | 4 +-- server/{models => plugins}/plugins.coffee | 2 +- server/routes/auth.coffee | 6 ++-- server/routes/db.coffee | 21 +++++++++++-- server/routes/file.coffee | 2 +- server/routes/folder.coffee | 2 +- server/routes/languages.coffee | 2 +- server/{models => users}/User.coffee | 2 +- .../user.coffee => users/user_handler.coffee} | 6 ++-- .../user.coffee => users/user_schema.coffee} | 2 +- test/server/common.coffee | 31 ++++++++++--------- 49 files changed, 105 insertions(+), 87 deletions(-) rename server/{models => articles}/Article.coffee (88%) rename server/{handlers/article.coffee => articles/article_handler.coffee} (79%) rename server/{schemas/article.coffee => articles/article_schema.coffee} (91%) rename server/{models => campaigns}/Campaign.coffee (93%) rename server/{models => campaigns}/CampaignStatus.coffee (100%) rename server/{handlers/campaign.coffee => campaigns/campaign_handler.coffee} (76%) rename server/{handlers/campaign_status.coffee => campaigns/campaign_status_handler.coffee} (81%) rename server/{handlers => commons}/Handler.coffee (99%) rename server/{ => commons}/errors.coffee (100%) rename server/{schemas/i18n.coffee => commons/i18n_schema.coffee} (98%) rename server/{ => commons}/logging.coffee (100%) rename server/{schemas => commons}/metaschema.coffee (100%) rename server/{schemas/common.coffee => commons/schemas.coffee} (100%) rename server/{models => files}/File.coffee (85%) rename server/{handlers/file.coffee => files/file_handler.coffee} (80%) rename server/{schemas/file.coffee => files/file_schema.coffee} (94%) rename server/{models => levels}/Level.coffee (89%) rename server/{models => levels/components}/LevelComponent.coffee (88%) rename server/{handlers/level_component.coffee => levels/components/level_component_handler.coffee} (87%) rename server/{schemas/level_component.coffee => levels/components/level_component_schema.coffee} (98%) rename server/{models => levels/drafts}/LevelDraft.coffee (88%) rename server/{handlers/level_draft.coffee => levels/drafts/level_draft_handler.coffee} (80%) rename server/{models => levels/feedbacks}/LevelFeedback.coffee (79%) rename server/{handlers/level_feedback.coffee => levels/feedbacks/level_feedback_handler.coffee} (80%) rename server/{schemas/level_feedback.coffee => levels/feedbacks/level_feedback_schema.coffee} (95%) rename server/{handlers/level.coffee => levels/level_handler.coffee} (92%) rename server/{schemas/level.coffee => levels/level_schema.coffee} (99%) rename server/{models => levels/sessions}/LevelSession.coffee (89%) rename server/{handlers/level_session.coffee => levels/sessions/level_session_handler.coffee} (90%) rename server/{schemas/level_session.coffee => levels/sessions/level_session_schema.coffee} (98%) rename server/{models => levels/systems}/LevelSystem.coffee (87%) rename server/{handlers/level_system.coffee => levels/systems/level_system_handler.coffee} (87%) rename server/{schemas/level_system.coffee => levels/systems/level_system_schema.coffee} (98%) rename server/{models => levels/thangs}/LevelThangType.coffee (97%) rename server/{models => levels/thangs}/ThangType.coffee (88%) rename server/{schemas/thang_component.coffee => levels/thangs/thang_component_schema.coffee} (95%) rename server/{handlers/thang_type.coffee => levels/thangs/thang_type_handler.coffee} (87%) rename server/{schemas/thang_type.coffee => levels/thangs/thang_type_schema.coffee} (98%) rename server/{models => plugins}/plugins.coffee (99%) rename server/{models => users}/User.coffee (98%) rename server/{handlers/user.coffee => users/user_handler.coffee} (98%) rename server/{schemas/user.coffee => users/user_schema.coffee} (98%) diff --git a/server.coffee b/server.coffee index f50c94ecb..1d83da7cc 100644 --- a/server.coffee +++ b/server.coffee @@ -13,8 +13,8 @@ auth = require './server/routes/auth' db = require './server/routes/db' file = require './server/routes/file' folder = require './server/routes/folder' -user = require './server/handlers/user' -logging = require './server/logging' +user = require './server/users/user_handler' +logging = require './server/commons/logging' sprites = require './server/routes/sprites' contact = require './server/routes/contact' languages = require './server/routes/languages' diff --git a/server/models/Article.coffee b/server/articles/Article.coffee similarity index 88% rename from server/models/Article.coffee rename to server/articles/Article.coffee index d4d4571ee..19a1e3253 100644 --- a/server/models/Article.coffee +++ b/server/articles/Article.coffee @@ -1,5 +1,5 @@ mongoose = require('mongoose') -plugins = require('./plugins') +plugins = require('../plugins/plugins') ArticleSchema = new mongoose.Schema( body: String, diff --git a/server/handlers/article.coffee b/server/articles/article_handler.coffee similarity index 79% rename from server/handlers/article.coffee rename to server/articles/article_handler.coffee index 49e856d10..464bb2c73 100644 --- a/server/handlers/article.coffee +++ b/server/articles/article_handler.coffee @@ -1,7 +1,7 @@ winston = require('winston') request = require('request') -Article = require('../models/Article') -Handler = require('./Handler') +Article = require('./Article') +Handler = require('../commons/Handler') ArticleHandler = class ArticleHandler extends Handler modelClass: Article diff --git a/server/schemas/article.coffee b/server/articles/article_schema.coffee similarity index 91% rename from server/schemas/article.coffee rename to server/articles/article_schema.coffee index cf6c579ec..08226d183 100644 --- a/server/schemas/article.coffee +++ b/server/articles/article_schema.coffee @@ -1,4 +1,4 @@ -c = require './common' +c = require '../commons/schemas' ArticleSchema = c.object() c.extendNamedProperties ArticleSchema # name first diff --git a/server/models/Campaign.coffee b/server/campaigns/Campaign.coffee similarity index 93% rename from server/models/Campaign.coffee rename to server/campaigns/Campaign.coffee index 37ad7a3ab..fbd374392 100644 --- a/server/models/Campaign.coffee +++ b/server/campaigns/Campaign.coffee @@ -1,5 +1,5 @@ mongoose = require('mongoose') -plugins = require('./plugins') +plugins = require('../plugins/plugins') NestedLevelSchema = new mongoose.Schema( name: String diff --git a/server/models/CampaignStatus.coffee b/server/campaigns/CampaignStatus.coffee similarity index 100% rename from server/models/CampaignStatus.coffee rename to server/campaigns/CampaignStatus.coffee diff --git a/server/handlers/campaign.coffee b/server/campaigns/campaign_handler.coffee similarity index 76% rename from server/handlers/campaign.coffee rename to server/campaigns/campaign_handler.coffee index 0ea01794d..b01b14f49 100644 --- a/server/handlers/campaign.coffee +++ b/server/campaigns/campaign_handler.coffee @@ -1,7 +1,7 @@ winston = require('winston') request = require('request') -Campaign = require('../models/Campaign') -Handler = require('./Handler') +Campaign = require('./Campaign') +Handler = require('../commons/Handler') CampaignHandler = class CampaignHandler extends Handler modelClass: Campaign diff --git a/server/handlers/campaign_status.coffee b/server/campaigns/campaign_status_handler.coffee similarity index 81% rename from server/handlers/campaign_status.coffee rename to server/campaigns/campaign_status_handler.coffee index ce5d293c0..bde09d9fa 100644 --- a/server/handlers/campaign_status.coffee +++ b/server/campaigns/campaign_status_handler.coffee @@ -1,7 +1,7 @@ winston = require('winston') request = require('request') -CampaignStatus = require('../models/CampaignStatus') -Handler = require('./Handler') +CampaignStatus = require('./CampaignStatus') +Handler = require('../commons/Handler') CampaignStatusHandler = class CampaignStatusHandler extends Handler modelClass: CampaignStatus diff --git a/server/handlers/Handler.coffee b/server/commons/Handler.coffee similarity index 99% rename from server/handlers/Handler.coffee rename to server/commons/Handler.coffee index 7a02b6280..229b2df18 100644 --- a/server/handlers/Handler.coffee +++ b/server/commons/Handler.coffee @@ -1,7 +1,7 @@ async = require 'async' mongoose = require('mongoose') Grid = require 'gridfs-stream' -errors = require '../errors' +errors = require './errors' module.exports = class Handler # subclasses should override these properties diff --git a/server/errors.coffee b/server/commons/errors.coffee similarity index 100% rename from server/errors.coffee rename to server/commons/errors.coffee diff --git a/server/schemas/i18n.coffee b/server/commons/i18n_schema.coffee similarity index 98% rename from server/schemas/i18n.coffee rename to server/commons/i18n_schema.coffee index 994b5b9b5..2a2aaf816 100644 --- a/server/schemas/i18n.coffee +++ b/server/commons/i18n_schema.coffee @@ -1,5 +1,5 @@ #this file will hold the experimental JSON schema for i18n -c = require './common' +c = require './schemas' languageCodeArrayRegex = c.generateLanguageCodeArrayRegex() diff --git a/server/logging.coffee b/server/commons/logging.coffee similarity index 100% rename from server/logging.coffee rename to server/commons/logging.coffee diff --git a/server/schemas/metaschema.coffee b/server/commons/metaschema.coffee similarity index 100% rename from server/schemas/metaschema.coffee rename to server/commons/metaschema.coffee diff --git a/server/schemas/common.coffee b/server/commons/schemas.coffee similarity index 100% rename from server/schemas/common.coffee rename to server/commons/schemas.coffee diff --git a/server/models/File.coffee b/server/files/File.coffee similarity index 85% rename from server/models/File.coffee rename to server/files/File.coffee index 915744498..1ec779271 100644 --- a/server/models/File.coffee +++ b/server/files/File.coffee @@ -1,5 +1,5 @@ mongoose = require('mongoose') -plugins = require('./plugins') +plugins = require('../plugins/plugins') FileSchema = new mongoose.Schema() diff --git a/server/handlers/file.coffee b/server/files/file_handler.coffee similarity index 80% rename from server/handlers/file.coffee rename to server/files/file_handler.coffee index 4123925e0..3cf067081 100644 --- a/server/handlers/file.coffee +++ b/server/files/file_handler.coffee @@ -1,5 +1,5 @@ -File = require('../models/File') -Handler = require('./Handler') +File = require('./File') +Handler = require('../commons/Handler') FileHandler = class FileHandler extends Handler modelClass: File diff --git a/server/schemas/file.coffee b/server/files/file_schema.coffee similarity index 94% rename from server/schemas/file.coffee rename to server/files/file_schema.coffee index 0ea9cd52d..2967890f3 100644 --- a/server/schemas/file.coffee +++ b/server/files/file_schema.coffee @@ -1,4 +1,4 @@ -c = require './common' +c = require '../commons/schemas' FileSchema = c.baseSchema() diff --git a/server/models/Level.coffee b/server/levels/Level.coffee similarity index 89% rename from server/models/Level.coffee rename to server/levels/Level.coffee index 31e8871ec..c61245ed5 100644 --- a/server/models/Level.coffee +++ b/server/levels/Level.coffee @@ -1,6 +1,6 @@ mongoose = require('mongoose') -plugins = require('./plugins') -jsonschema = require('../schemas/level') +plugins = require('../plugins/plugins') +jsonschema = require('./level_schema') LevelSchema = new mongoose.Schema({ description: String diff --git a/server/models/LevelComponent.coffee b/server/levels/components/LevelComponent.coffee similarity index 88% rename from server/models/LevelComponent.coffee rename to server/levels/components/LevelComponent.coffee index 27789748f..3dc373be1 100644 --- a/server/models/LevelComponent.coffee +++ b/server/levels/components/LevelComponent.coffee @@ -1,6 +1,6 @@ mongoose = require('mongoose') -plugins = require('./plugins') -jsonschema = require('../schemas/level_component') +plugins = require('../../plugins/plugins') +jsonschema = require('./level_component_schema') LevelComponentSchema = new mongoose.Schema { description: String diff --git a/server/handlers/level_component.coffee b/server/levels/components/level_component_handler.coffee similarity index 87% rename from server/handlers/level_component.coffee rename to server/levels/components/level_component_handler.coffee index 70ade0f3e..ee7a85d17 100644 --- a/server/handlers/level_component.coffee +++ b/server/levels/components/level_component_handler.coffee @@ -1,7 +1,7 @@ winston = require('winston') request = require('request') -LevelComponent = require('../models/LevelComponent') -Handler = require('./Handler') +LevelComponent = require('./LevelComponent') +Handler = require('../../commons/Handler') LevelComponentHandler = class LevelComponentHandler extends Handler modelClass: LevelComponent diff --git a/server/schemas/level_component.coffee b/server/levels/components/level_component_schema.coffee similarity index 98% rename from server/schemas/level_component.coffee rename to server/levels/components/level_component_schema.coffee index bdc4caae5..dad9acde7 100644 --- a/server/schemas/level_component.coffee +++ b/server/levels/components/level_component_schema.coffee @@ -1,5 +1,5 @@ -c = require './common' -metaschema = require './metaschema' +c = require '../../commons/schemas' +metaschema = require '../../commons/metaschema' attackSelfCode = """ class AttacksSelf extends Component diff --git a/server/models/LevelDraft.coffee b/server/levels/drafts/LevelDraft.coffee similarity index 88% rename from server/models/LevelDraft.coffee rename to server/levels/drafts/LevelDraft.coffee index 3b82a3129..c5e265642 100644 --- a/server/models/LevelDraft.coffee +++ b/server/levels/drafts/LevelDraft.coffee @@ -1,5 +1,5 @@ mongoose = require('mongoose') -Level = require('./Level') +Level = require('../Level') LevelDraftSchema = new mongoose.Schema( user: {type: mongoose.Schema.ObjectId, ref: 'User'} diff --git a/server/handlers/level_draft.coffee b/server/levels/drafts/level_draft_handler.coffee similarity index 80% rename from server/handlers/level_draft.coffee rename to server/levels/drafts/level_draft_handler.coffee index 4900c766e..dd4711127 100644 --- a/server/handlers/level_draft.coffee +++ b/server/levels/drafts/level_draft_handler.coffee @@ -1,7 +1,7 @@ winston = require('winston') request = require('request') -LevelDraft = require('../models/LevelDraft') -Handler = require('./Handler') +LevelDraft = require('./LevelDraft') +Handler = require('../../commons/Handler') LevelDraftHandler = class LevelDraftHandler extends Handler modelClass: LevelDraft diff --git a/server/models/LevelFeedback.coffee b/server/levels/feedbacks/LevelFeedback.coffee similarity index 79% rename from server/models/LevelFeedback.coffee rename to server/levels/feedbacks/LevelFeedback.coffee index 9561ec4fb..0eecdec32 100644 --- a/server/models/LevelFeedback.coffee +++ b/server/levels/feedbacks/LevelFeedback.coffee @@ -1,8 +1,8 @@ # TODO: not updated since rename from level_instance, or since we redid how all models are done; probably busted mongoose = require('mongoose') -plugins = require('./plugins') -jsonschema = require('../schemas/level_feedback') +plugins = require('../../plugins/plugins') +jsonschema = require('./level_feedback_schema') LevelFeedbackSchema = new mongoose.Schema({ created: diff --git a/server/handlers/level_feedback.coffee b/server/levels/feedbacks/level_feedback_handler.coffee similarity index 80% rename from server/handlers/level_feedback.coffee rename to server/levels/feedbacks/level_feedback_handler.coffee index d0b5292a2..5cb8be50b 100644 --- a/server/handlers/level_feedback.coffee +++ b/server/levels/feedbacks/level_feedback_handler.coffee @@ -1,5 +1,5 @@ -LevelFeedback = require('../models/LevelFeedback') -Handler = require('./Handler') +LevelFeedback = require('./LevelFeedback') +Handler = require('../../commons/Handler') class LevelFeedbackHandler extends Handler modelClass: LevelFeedback diff --git a/server/schemas/level_feedback.coffee b/server/levels/feedbacks/level_feedback_schema.coffee similarity index 95% rename from server/schemas/level_feedback.coffee rename to server/levels/feedbacks/level_feedback_schema.coffee index f10c22ad1..54d9e84e1 100644 --- a/server/schemas/level_feedback.coffee +++ b/server/levels/feedbacks/level_feedback_schema.coffee @@ -1,4 +1,4 @@ -c = require './common' +c = require '../../commons/schemas' LevelFeedbackLevelSchema = c.object {required: ['original', 'majorVersion']}, { original: c.objectId({}) diff --git a/server/handlers/level.coffee b/server/levels/level_handler.coffee similarity index 92% rename from server/handlers/level.coffee rename to server/levels/level_handler.coffee index d8a98dd7a..ae1403a6e 100644 --- a/server/handlers/level.coffee +++ b/server/levels/level_handler.coffee @@ -1,10 +1,10 @@ winston = require('winston') request = require('request') -Level = require('../models/Level') -Session = require('../models/LevelSession') -SessionHandler = require('./level_session') -Feedback = require('../models/LevelFeedback') -Handler = require('./Handler') +Level = require('./Level') +Session = require('./sessions/LevelSession') +SessionHandler = require('./sessions/level_session_handler') +Feedback = require('./feedbacks/LevelFeedback') +Handler = require('../commons/Handler') mongoose = require('mongoose') LevelHandler = class LevelHandler extends Handler diff --git a/server/schemas/level.coffee b/server/levels/level_schema.coffee similarity index 99% rename from server/schemas/level.coffee rename to server/levels/level_schema.coffee index 3d4cc6f67..e8e8ac345 100644 --- a/server/schemas/level.coffee +++ b/server/levels/level_schema.coffee @@ -1,5 +1,5 @@ -c = require './common' -ThangComponentSchema = require './thang_component' +c = require '../commons/schemas' +ThangComponentSchema = require './thangs/thang_component_schema' SpecificArticleSchema = c.object() c.extendNamedProperties SpecificArticleSchema # name first diff --git a/server/models/LevelSession.coffee b/server/levels/sessions/LevelSession.coffee similarity index 89% rename from server/models/LevelSession.coffee rename to server/levels/sessions/LevelSession.coffee index c96bf7e3d..952782f1b 100644 --- a/server/models/LevelSession.coffee +++ b/server/levels/sessions/LevelSession.coffee @@ -1,8 +1,8 @@ # TODO: not updated since rename from level_instance, or since we redid how all models are done; probably busted mongoose = require('mongoose') -plugins = require('./plugins') -jsonschema = require('../schemas/level_session') +plugins = require('../../plugins/plugins') +jsonschema = require('./level_session_schema') LevelSessionSchema = new mongoose.Schema({ created: diff --git a/server/handlers/level_session.coffee b/server/levels/sessions/level_session_handler.coffee similarity index 90% rename from server/handlers/level_session.coffee rename to server/levels/sessions/level_session_handler.coffee index 198ebe337..01d71358f 100644 --- a/server/handlers/level_session.coffee +++ b/server/levels/sessions/level_session_handler.coffee @@ -1,5 +1,5 @@ -LevelSession = require('../models/LevelSession') -Handler = require('./Handler') +LevelSession = require('./LevelSession') +Handler = require('../../commons/Handler') TIMEOUT = 1000 * 30 # no activity for 30 seconds means it's not active diff --git a/server/schemas/level_session.coffee b/server/levels/sessions/level_session_schema.coffee similarity index 98% rename from server/schemas/level_session.coffee rename to server/levels/sessions/level_session_schema.coffee index a025da2bf..39473e06c 100644 --- a/server/schemas/level_session.coffee +++ b/server/levels/sessions/level_session_schema.coffee @@ -1,4 +1,4 @@ -c = require './common' +c = require '../../commons/schemas' LevelSessionPlayerSchema = c.object { id: c.objectId(links: [{rel: 'extra', href: "/db/user/{($)}"}]) diff --git a/server/models/LevelSystem.coffee b/server/levels/systems/LevelSystem.coffee similarity index 87% rename from server/models/LevelSystem.coffee rename to server/levels/systems/LevelSystem.coffee index 1be4a1ad9..cf21f7355 100644 --- a/server/models/LevelSystem.coffee +++ b/server/levels/systems/LevelSystem.coffee @@ -1,6 +1,6 @@ mongoose = require('mongoose') -plugins = require('./plugins') -jsonschema = require('../schemas/level_system') +plugins = require('../../plugins/plugins') +jsonschema = require('./level_system_schema') LevelSystemSchema = new mongoose.Schema { description: String diff --git a/server/handlers/level_system.coffee b/server/levels/systems/level_system_handler.coffee similarity index 87% rename from server/handlers/level_system.coffee rename to server/levels/systems/level_system_handler.coffee index 5c237843d..36d2abf50 100644 --- a/server/handlers/level_system.coffee +++ b/server/levels/systems/level_system_handler.coffee @@ -1,7 +1,7 @@ winston = require('winston') request = require('request') -LevelSystem = require('../models/LevelSystem') -Handler = require('./Handler') +LevelSystem = require('./LevelSystem') +Handler = require('../../commons/Handler') LevelSystemHandler = class LevelSystemHandler extends Handler modelClass: LevelSystem diff --git a/server/schemas/level_system.coffee b/server/levels/systems/level_system_schema.coffee similarity index 98% rename from server/schemas/level_system.coffee rename to server/levels/systems/level_system_schema.coffee index deeca4cf4..cc4bc7891 100644 --- a/server/schemas/level_system.coffee +++ b/server/levels/systems/level_system_schema.coffee @@ -1,5 +1,5 @@ -c = require './common' -metaschema = require './metaschema' +c = require '../../commons/schemas' +metaschema = require '../../commons/metaschema' jitterSystemCode = """ class Jitter extends System diff --git a/server/models/LevelThangType.coffee b/server/levels/thangs/LevelThangType.coffee similarity index 97% rename from server/models/LevelThangType.coffee rename to server/levels/thangs/LevelThangType.coffee index 9eb626dcb..abdf5d11c 100644 --- a/server/models/LevelThangType.coffee +++ b/server/levels/thangs/LevelThangType.coffee @@ -1,5 +1,5 @@ mongoose = require('mongoose') -plugins = require('./plugins') +plugins = require('../../plugins/plugins') LevelComponentSchema = new mongoose.Schema( original: {type: mongoose.Schema.ObjectId, ref: 'level.session'} diff --git a/server/models/ThangType.coffee b/server/levels/thangs/ThangType.coffee similarity index 88% rename from server/models/ThangType.coffee rename to server/levels/thangs/ThangType.coffee index 72e291a79..92915e8d0 100644 --- a/server/models/ThangType.coffee +++ b/server/levels/thangs/ThangType.coffee @@ -1,5 +1,5 @@ mongoose = require('mongoose') -plugins = require('./plugins') +plugins = require('../../plugins/plugins') ThangTypeSchema = new mongoose.Schema({ body: String, diff --git a/server/schemas/thang_component.coffee b/server/levels/thangs/thang_component_schema.coffee similarity index 95% rename from server/schemas/thang_component.coffee rename to server/levels/thangs/thang_component_schema.coffee index 6be5f65b0..0118d3a4c 100644 --- a/server/schemas/thang_component.coffee +++ b/server/levels/thangs/thang_component_schema.coffee @@ -1,4 +1,4 @@ -c = require './common' +c = require '../../commons/schemas' module.exports = ThangComponentSchema = c.object { title: "Component" diff --git a/server/handlers/thang_type.coffee b/server/levels/thangs/thang_type_handler.coffee similarity index 87% rename from server/handlers/thang_type.coffee rename to server/levels/thangs/thang_type_handler.coffee index 601f6f6e1..6ebed41bc 100644 --- a/server/handlers/thang_type.coffee +++ b/server/levels/thangs/thang_type_handler.coffee @@ -1,7 +1,7 @@ winston = require('winston') request = require('request') -ThangType = require('../models/ThangType') -Handler = require('./Handler') +ThangType = require('./ThangType') +Handler = require('../../commons/Handler') ThangTypeHandler = class ThangTypeHandler extends Handler modelClass: ThangType diff --git a/server/schemas/thang_type.coffee b/server/levels/thangs/thang_type_schema.coffee similarity index 98% rename from server/schemas/thang_type.coffee rename to server/levels/thangs/thang_type_schema.coffee index f8c164d5b..e8bbb79f0 100644 --- a/server/schemas/thang_type.coffee +++ b/server/levels/thangs/thang_type_schema.coffee @@ -1,5 +1,5 @@ -c = require './common' -ThangComponentSchema = require './thang_component' +c = require '../../commons/schemas' +ThangComponentSchema = require './thang_component_schema' ThangTypeSchema = c.object() c.extendNamedProperties ThangTypeSchema # name first diff --git a/server/models/plugins.coffee b/server/plugins/plugins.coffee similarity index 99% rename from server/models/plugins.coffee rename to server/plugins/plugins.coffee index 93da928f6..f1f224b82 100644 --- a/server/models/plugins.coffee +++ b/server/plugins/plugins.coffee @@ -1,5 +1,5 @@ mongoose = require('mongoose') -User = require('./User') +User = require('../users/User') textSearch = require('mongoose-text-search') module.exports.NamedPlugin = (schema) -> diff --git a/server/routes/auth.coffee b/server/routes/auth.coffee index eaa510afa..2ec3c008a 100644 --- a/server/routes/auth.coffee +++ b/server/routes/auth.coffee @@ -1,11 +1,11 @@ passport = require('passport') winston = require('winston') LocalStrategy = require('passport-local').Strategy -User = require('./../models/User') -UserHandler = require('./../handlers/user') +User = require('../users/User') +UserHandler = require('../users/user_handler') config = require '../../server_config' nodemailer = require 'nodemailer' -errors = require './../errors' +errors = require '../commons/errors' module.exports.setupRoutes = (app) -> passport.serializeUser((user, done) -> done(null, user._id)) diff --git a/server/routes/db.coffee b/server/routes/db.coffee index 57bb269e7..de2a18372 100644 --- a/server/routes/db.coffee +++ b/server/routes/db.coffee @@ -3,10 +3,26 @@ winston = require 'winston' mongoose = require 'mongoose' Grid = require 'gridfs-stream' async = require 'async' -errors = require './../errors' +errors = require '../commons/errors' testing = '--unittest' in process.argv + +handlers = + 'article': '../../server/articles/article_handler' + 'campaign': '../../server/campaigns/campaign_handler' + 'campaign_status': '../../server/campaigns/campaign_status_handler' + 'file': '../../server/files/file_handler' + 'level': '../../server/levels/level_handler' + 'level_component': '../../server/levels/components/level_component_handler' + 'level_draft': '../../server/levels/drafts/level_draft_handler' + 'level_feedback': '../../server/levels/feedbacks/level_feedback_handler' + 'level_session': '../../server/levels/sessions/level_session_handler' + 'level_system': '../../server/levels/systems/level_system_handler' + 'level_thang_type': '../../server/levels/thangs/level_thangType_handler' + 'user': '../../server/users/user_handler' + + module.exports.connectDatabase = () -> dbName = config.mongo.db dbName += '_unittest' if testing @@ -30,7 +46,8 @@ module.exports.setupRoutes = (app) -> return getSchema(req, res, module) if parts[1] is 'schema' try - name = "../handlers/#{module.replace '.', '_'}" + moduleName = module.replace '.', '_' + name = handlers[moduleName] module = require(name) return module.getLatestVersion(req, res, parts[1], parts[3]) if parts[2] is 'version' return module.versions(req, res, parts[1]) if parts[2] is 'versions' diff --git a/server/routes/file.coffee b/server/routes/file.coffee index ecb8c36e7..e738ccc0d 100644 --- a/server/routes/file.coffee +++ b/server/routes/file.coffee @@ -3,7 +3,7 @@ Grid = require 'gridfs-stream' fs = require 'fs' request = require 'request' mongoose = require('mongoose') -errors = require './../errors' +errors = require '../commons/errors' module.exports.setupRoutes = (app) -> app.all '/file*', (req, res) -> diff --git a/server/routes/folder.coffee b/server/routes/folder.coffee index 157c63dd9..4216680d4 100644 --- a/server/routes/folder.coffee +++ b/server/routes/folder.coffee @@ -1,7 +1,7 @@ fs = require 'fs' request = require 'request' mongoose = require('mongoose') -errors = require './../errors' +errors = require '../commons/errors' module.exports.setupRoutes = (app) -> app.all '/folder*', (req, res) -> diff --git a/server/routes/languages.coffee b/server/routes/languages.coffee index 43daac19a..43031d55e 100644 --- a/server/routes/languages.coffee +++ b/server/routes/languages.coffee @@ -1,4 +1,4 @@ -errors = require './../errors' +errors = require '../commons/errors' winston = require 'winston' locale = require '../../app/locale/locale' # requiring from app; will break if we stop serving from where app lives diff --git a/server/models/User.coffee b/server/users/User.coffee similarity index 98% rename from server/models/User.coffee rename to server/users/User.coffee index b557dfccd..c3c685375 100644 --- a/server/models/User.coffee +++ b/server/users/User.coffee @@ -1,5 +1,5 @@ mongoose = require('mongoose') -jsonschema = require('../schemas/user') +jsonschema = require('./user_schema') crypto = require('crypto') {salt, isProduction} = require('../../server_config') diff --git a/server/handlers/user.coffee b/server/users/user_handler.coffee similarity index 98% rename from server/handlers/user.coffee rename to server/users/user_handler.coffee index e894704ab..21b25f818 100644 --- a/server/handlers/user.coffee +++ b/server/users/user_handler.coffee @@ -1,9 +1,9 @@ winston = require('winston') -schema = require('../schemas/user') +schema = require('./user_schema') crypto = require('crypto') request = require('request') -User = require('../models/User') -Handler = require('./Handler') +User = require('./User') +Handler = require('../commons/Handler') languages = require '../routes/languages' mongoose = require 'mongoose' config = require '../../server_config' diff --git a/server/schemas/user.coffee b/server/users/user_schema.coffee similarity index 98% rename from server/schemas/user.coffee rename to server/users/user_schema.coffee index 018bd56a3..7ae34c4af 100644 --- a/server/schemas/user.coffee +++ b/server/users/user_schema.coffee @@ -1,4 +1,4 @@ -c = require './common' +c = require '../commons/schemas' emailSubscriptions = ['announcement', 'tester', 'level_creator', 'developer', 'article_editor', 'translator', 'support', 'notification'] UserSchema = c.object {}, diff --git a/test/server/common.coffee b/test/server/common.coffee index 13c5db06d..5ba7551dd 100644 --- a/test/server/common.coffee +++ b/test/server/common.coffee @@ -6,24 +6,25 @@ _.str = require('underscore.string') _.mixin(_.str.exports()) GLOBAL.mongoose = require 'mongoose' mongoose.connect('mongodb://localhost/coco_unittest') +path = require('path') -models_path = '../../server/models/' - -include_models = [ - 'Article' - 'Campaign' - 'CampaignStatus' - 'Level' - 'LevelComponent' - 'LevelSystem' - 'LevelDraft' - 'LevelSession' - 'LevelThangType' - 'User' +models_path = [ + '../../server/articles/Article' + '../../server/campaigns/Campaign' + '../../server/campaigns/CampaignStatus' + '../../server/levels/Level' + '../../server/levels/components/LevelComponent' + '../../server/levels/systems/LevelSystem' + '../../server/levels/drafts/LevelDraft' + '../../server/levels/sessions/LevelSession' + '../../server/levels/thangs/LevelThangType' + '../../server/users/User' ] -for m in include_models - GLOBAL[m] = require models_path+m +for m in models_path + model = path.basename(m) + #console.log('model=' + model) + GLOBAL[model] = require m async = require 'async'