summaryrefslogtreecommitdiff
path: root/server/lib/schemas/Project.js
diff options
context:
space:
mode:
authorJulie Lala <jules@okfoc.us>2014-06-07 04:50:31 -0400
committerJulie Lala <jules@okfoc.us>2014-06-07 04:50:31 -0400
commitf28d8f4aac3f6411d43ac81a70bfebe5e61e96c7 (patch)
tree659b2aa98c4851389398cea1e6bd7bac354bc6e6 /server/lib/schemas/Project.js
parent32c33b9e24cde290096af10d97b37eb4bbc0e788 (diff)
arrange edit project/profile modals
Diffstat (limited to 'server/lib/schemas/Project.js')
-rw-r--r--server/lib/schemas/Project.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/server/lib/schemas/Project.js b/server/lib/schemas/Project.js
new file mode 100644
index 0000000..a0382b3
--- /dev/null
+++ b/server/lib/schemas/Project.js
@@ -0,0 +1,38 @@
+/* jshint node: true */
+
+var NONALPHANUMERICS_REGEX = new RegExp('[^-_a-zA-Z0-9]', 'g')
+
+var mongoose = require('mongoose'),
+ _ = require('lodash'),
+ config = require('../../../config.json');
+
+var ProjectSchema = new mongoose.Schema({
+ name: { type: String, required: true },
+ slug: {
+ type: String,
+ required: true,
+ validate: [function (val){
+ val = (val || this.displayName || "").replace(/\s/g,"-").replace(NONALPHANUMERICS_REGEX, '-').replace(/-+/g,"-")
+ if (! val.length) return false
+ return true
+ },"{PATH} name is required"]
+ },
+ privacy: {
+ type: Boolean,
+ default: false,
+ },
+ photo: {
+ type: String,
+ },
+ about: {
+ type: String,
+ default: ""
+ },
+ user_id: { type: mongoose.Schema.ObjectId, index: true },
+ created_at: { type: Date },
+ updated_at: { type: Date },
+});
+
+
+module.exports = exports = mongoose.model('project', ProjectSchema);
+exports.schema = ProjectSchema;