Created a recent endpoint for matches.

Added a field to record creation time of a match.

Additionally performed some minor refactoring.
This commit is contained in:
2022-04-01 11:16:24 -05:00
parent 19bbca36ca
commit 8a3de628a6
5 changed files with 37 additions and 13 deletions

View File

@@ -1,12 +1,12 @@
import mongoose from "mongoose";
import ModelNameRegister from "./ModelNameRegister.js";
import ModelNameRegister from "./modelNameRegister.js";
const Types = mongoose.Schema.Types; // Some types require defining from this object.
const matchSchema = new mongoose.Schema({
title: { type: String, required: true, trim: true },
dateTime: { type: Date, required: true },
public: { type: Boolean, required: true, default: true },
when: { type: Date, required: true },
publicity: { type: Number, required: true, default: 2 },
location: {
type: [Number],
required: true,
@@ -14,13 +14,14 @@ const matchSchema = new mongoose.Schema({
validator: function (v) {
return v.length === 2;
},
message: "Invalid coordinate format (array not length of 2)"
message: "Invalid coordinate format (array not length of 2)."
}
},
creator: { type: Types.ObjectId, ref: ModelNameRegister.User },
participants: { type: [{ type: Types.ObjectId, ref: ModelNameRegister.User }], required: true, default: [] },
difficulty: { type: Number, required: true },
sport: { type: Types.ObjectId, ref: ModelNameRegister.Sport }
sport: { type: Types.ObjectId, ref: ModelNameRegister.Sport },
createDate: { type: Date, required: true, default: Date.now }
});
export default mongoose.model(ModelNameRegister.Match, matchSchema);

View File

@@ -1,5 +1,5 @@
import mongoose from "mongoose";
import ModelNameRegister from "./ModelNameRegister.js";
import ModelNameRegister from "./modelNameRegister.js";
const sportSchema = new mongoose.Schema({
name: { type: String, required: true, unique: true, trim: true },

View File

@@ -1,7 +1,7 @@
import mongoose from "mongoose";
import validator from "validator";
import bcrypt from "bcrypt";
import ModelNameRegister from "./ModelNameRegister.js";
import modelNameRegister from "./modelNameRegister.js";
const Types = mongoose.Schema.Types;
@@ -27,12 +27,13 @@ const userSchema = new mongoose.Schema({
minlength: 8
// TODO: Custom validator for password requirements?
},
createdMatches: { type: [{ type: Types.ObjectId, ref: ModelNameRegister.Match }], required: true, default: [] },
participatingMatches: { type: [{ type: Types.ObjectId, ref: ModelNameRegister.Match }], required: true, default: [] },
createdMatches: { type: [{ type: Types.ObjectId, ref: modelNameRegister.Match }], required: true, default: [] },
participatingMatches: { type: [{ type: Types.ObjectId, ref: modelNameRegister.Match }], required: true, default: [] },
emailPublicity: { type: Number, required: true, default: 0 },
bioPublicity: { type: Boolean, required: true, default: false },
phonePublicity: { type: Boolean, required: true, default: false },
participatingMatchesPublicity: { type: Boolean, required: true, default: false },
friends: { type: Types.ObjectId, ref: modelNameRegister.User },
accessLevel: { type: Number, required: true, default: 0 },
});
@@ -64,4 +65,4 @@ userSchema.pre("save", function (next) {
}
});
export default mongoose.model(ModelNameRegister.User, userSchema);
export default mongoose.model(modelNameRegister.User, userSchema);