From bfe708d48f603998a1f2c4cad4a6f9f8683dc18f Mon Sep 17 00:00:00 2001 From: Raphael Kabo Date: Fri, 12 May 2023 16:54:06 +0100 Subject: Migrate to Typescript --- src/models/Event.js | 254 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 254 insertions(+) create mode 100755 src/models/Event.js (limited to 'src/models/Event.js') diff --git a/src/models/Event.js b/src/models/Event.js new file mode 100755 index 0000000..d800077 --- /dev/null +++ b/src/models/Event.js @@ -0,0 +1,254 @@ +const mongoose = require('mongoose'); + +const Attendees = new mongoose.Schema({ + name: { + type: String, + trim: true + }, + status: { + type: String, + trim: true + }, + email: { + type: String, + trim: true + }, + removalPassword: { + type: String, + trim: true, + unique: true, + sparse: true, + }, + id: { + type: String, + trim: true, + unique: true, + sparse: true, + }, + // The number of people that are attending under one 'attendee' object + number: { + type: Number, + trim: true, + default: 1 + }, + created: Date, +}) + +const Followers = new mongoose.Schema({ + // this is the id of the original follow *request*, which we use to validate Undo events + followId: { + type: String, + trim: true + }, + // this is the actual remote user profile id + actorId: { + type: String, + trim: true + }, + // this is the stringified JSON of the entire user profile + actorJson: { + type: String, + trim: true + }, + name: { + type: String, + trim: true + }, +}, { _id: false }) + +const ReplySchema = new mongoose.Schema({ + id: { + type: String, + required: true, + unique: true, + sparse: true + }, + author: { + type: String, + trim: true, + required: true + }, + content: { + type: String, + trim: true, + required: true + }, + timestamp: { + type: Date, + trim: true, + required: true + } +}) + +const ActivityPubMessages = new mongoose.Schema({ + id: { + type: String, + required: true, + unique: true, + sparse: true + }, + content: { + type: String, + trim: true, + required: true + } +}) + +const CommentSchema = new mongoose.Schema({ + id: { + type: String, + required: true, + unique: true, + sparse: true + }, + author: { + type: String, + trim: true, + required: true + }, + content: { + type: String, + trim: true, + required: true + }, + timestamp: { + type: Date, + trim: true, + required: true + }, + activityJson: { + type: String, + trim: true + }, + actorJson: { + type: String, + trim: true + }, + activityId: { + type: String, + trim: true + }, + actorId: { + type: String, + trim: true + }, + replies: [ReplySchema] +}) + +const EventSchema = new mongoose.Schema({ + id: { + type: String, + required: true, + unique: true + }, + type: { + type: String, + trim: true, + required: true + }, + name: { + type: String, + trim: true, + required: true + }, + location: { + type: String, + trim: true, + required: true + }, + start: { // Stored as a UTC timestamp + type: Date, + trim: true, + required: true + }, + end: { // Stored as a UTC timestamp + type: Date, + trim: true, + required: true + }, + timezone: { + type: String, + default: 'Etc/UTC' + }, + description: { + type: String, + trim: true, + required: true + }, + image: { + type: String, + trim: true + }, + url: { + type: String, + trim: true + }, + creatorEmail: { + type: String, + trim: true + }, + hostName: { + type: String, + trim: true + }, + viewPassword: { + type: String, + trim: true + }, + editPassword: { + type: String, + trim: true + }, + editToken: { + type: String, + trim: true, + minlength: 32, + maxlength: 32 + }, + eventGroup: { type: mongoose.Schema.Types.ObjectId, ref: 'EventGroup' }, + usersCanAttend: { + type: Boolean, + trim: true, + default: false + }, + showUsersList: { + type: Boolean, + trim: true, + default: false + }, + usersCanComment: { + type: Boolean, + trim: true, + default: false + }, + firstLoad: { + type: Boolean, + trim: true, + default: true + }, + attendees: [Attendees], + maxAttendees: { + type: Number + }, + comments: [CommentSchema], + activityPubActor: { + type: String, + trim: true + }, + activityPubEvent: { + type: String, + trim: true + }, + publicKey: { + type: String, + trim: true + }, + privateKey: { + type: String, + trim: true + }, + followers: [Followers], + activityPubMessages: [ActivityPubMessages] +}); + +module.exports = mongoose.model('Event', EventSchema); -- cgit v1.2.3 From 453c08463bf46e568c8a5018416ad88498a73f29 Mon Sep 17 00:00:00 2001 From: Raphael Kabo Date: Fri, 12 May 2023 16:54:06 +0100 Subject: linting: source files --- src/models/Event.js | 157 +++++++++++++++++++++++++++------------------------- 1 file changed, 81 insertions(+), 76 deletions(-) (limited to 'src/models/Event.js') diff --git a/src/models/Event.js b/src/models/Event.js index d800077..234084a 100755 --- a/src/models/Event.js +++ b/src/models/Event.js @@ -1,17 +1,17 @@ -const mongoose = require('mongoose'); +const mongoose = require("mongoose"); const Attendees = new mongoose.Schema({ name: { type: String, - trim: true + trim: true, }, status: { type: String, - trim: true + trim: true, }, email: { type: String, - trim: true + trim: true, }, removalPassword: { type: String, @@ -29,226 +29,231 @@ const Attendees = new mongoose.Schema({ number: { type: Number, trim: true, - default: 1 + default: 1, }, created: Date, -}) +}); -const Followers = new mongoose.Schema({ - // this is the id of the original follow *request*, which we use to validate Undo events - followId: { - type: String, - trim: true - }, - // this is the actual remote user profile id - actorId: { - type: String, - trim: true - }, - // this is the stringified JSON of the entire user profile - actorJson: { - type: String, - trim: true - }, - name: { - type: String, - trim: true - }, -}, { _id: false }) +const Followers = new mongoose.Schema( + { + // this is the id of the original follow *request*, which we use to validate Undo events + followId: { + type: String, + trim: true, + }, + // this is the actual remote user profile id + actorId: { + type: String, + trim: true, + }, + // this is the stringified JSON of the entire user profile + actorJson: { + type: String, + trim: true, + }, + name: { + type: String, + trim: true, + }, + }, + { _id: false } +); const ReplySchema = new mongoose.Schema({ id: { type: String, required: true, unique: true, - sparse: true + sparse: true, }, author: { type: String, trim: true, - required: true + required: true, }, content: { type: String, trim: true, - required: true + required: true, }, timestamp: { type: Date, trim: true, - required: true - } -}) + required: true, + }, +}); const ActivityPubMessages = new mongoose.Schema({ id: { type: String, required: true, unique: true, - sparse: true + sparse: true, }, content: { type: String, trim: true, - required: true - } -}) + required: true, + }, +}); const CommentSchema = new mongoose.Schema({ id: { type: String, required: true, unique: true, - sparse: true + sparse: true, }, author: { type: String, trim: true, - required: true + required: true, }, content: { type: String, trim: true, - required: true + required: true, }, timestamp: { type: Date, trim: true, - required: true + required: true, }, activityJson: { type: String, - trim: true + trim: true, }, actorJson: { type: String, - trim: true + trim: true, }, activityId: { type: String, - trim: true + trim: true, }, actorId: { type: String, - trim: true + trim: true, }, - replies: [ReplySchema] -}) + replies: [ReplySchema], +}); const EventSchema = new mongoose.Schema({ id: { type: String, required: true, - unique: true + unique: true, }, type: { type: String, trim: true, - required: true + required: true, }, name: { type: String, trim: true, - required: true + required: true, }, location: { type: String, trim: true, - required: true + required: true, }, - start: { // Stored as a UTC timestamp + start: { + // Stored as a UTC timestamp type: Date, trim: true, - required: true + required: true, }, - end: { // Stored as a UTC timestamp + end: { + // Stored as a UTC timestamp type: Date, trim: true, - required: true + required: true, }, timezone: { type: String, - default: 'Etc/UTC' + default: "Etc/UTC", }, description: { type: String, trim: true, - required: true + required: true, }, image: { type: String, - trim: true + trim: true, }, url: { type: String, - trim: true + trim: true, }, creatorEmail: { type: String, - trim: true + trim: true, }, hostName: { type: String, - trim: true + trim: true, }, viewPassword: { type: String, - trim: true + trim: true, }, editPassword: { type: String, - trim: true + trim: true, }, editToken: { type: String, trim: true, minlength: 32, - maxlength: 32 + maxlength: 32, }, - eventGroup: { type: mongoose.Schema.Types.ObjectId, ref: 'EventGroup' }, + eventGroup: { type: mongoose.Schema.Types.ObjectId, ref: "EventGroup" }, usersCanAttend: { type: Boolean, trim: true, - default: false + default: false, }, showUsersList: { type: Boolean, trim: true, - default: false + default: false, }, usersCanComment: { type: Boolean, trim: true, - default: false + default: false, }, firstLoad: { type: Boolean, trim: true, - default: true + default: true, }, attendees: [Attendees], maxAttendees: { - type: Number + type: Number, }, comments: [CommentSchema], activityPubActor: { type: String, - trim: true + trim: true, }, activityPubEvent: { type: String, - trim: true + trim: true, }, publicKey: { type: String, - trim: true + trim: true, }, privateKey: { type: String, - trim: true + trim: true, }, followers: [Followers], - activityPubMessages: [ActivityPubMessages] + activityPubMessages: [ActivityPubMessages], }); -module.exports = mongoose.model('Event', EventSchema); +module.exports = mongoose.model("Event", EventSchema); -- cgit v1.2.3