@armi-wave/common 1.23.12 → 1.23.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/middlewares/current-user.d.ts +3 -2
- package/build/models/Comment.d.ts +8 -19
- package/build/models/Comment.js +50 -9
- package/build/models/Follow.js +2 -0
- package/build/models/Like.js +1 -0
- package/build/models/Post.d.ts +5 -16
- package/build/models/Post.js +9 -2
- package/build/models/Reply.d.ts +8 -18
- package/build/models/Reply.js +45 -8
- package/build/models/User.d.ts +5 -28
- package/build/models/User.js +39 -4
- package/package.json +1 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { NextFunction, Request, Response } from 'express';
|
|
2
|
+
import mongoose from 'mongoose';
|
|
2
3
|
interface UserPayload {
|
|
3
|
-
id:
|
|
4
|
-
email: string;
|
|
4
|
+
id: mongoose.Types.ObjectId;
|
|
5
5
|
username: string;
|
|
6
|
+
profilePicUrl: string;
|
|
6
7
|
}
|
|
7
8
|
declare global {
|
|
8
9
|
namespace Express {
|
|
@@ -1,30 +1,19 @@
|
|
|
1
|
-
import mongoose from 'mongoose';
|
|
2
|
-
interface
|
|
3
|
-
postId:
|
|
4
|
-
userId:
|
|
1
|
+
import mongoose, { Document } from 'mongoose';
|
|
2
|
+
interface Comment extends Document {
|
|
3
|
+
postId: mongoose.Types.ObjectId;
|
|
4
|
+
userId: mongoose.Types.ObjectId;
|
|
5
5
|
username: string;
|
|
6
6
|
profilePicUrl: string;
|
|
7
7
|
text: string;
|
|
8
8
|
likes?: number;
|
|
9
9
|
upVotes?: number;
|
|
10
10
|
downVotes?: number;
|
|
11
|
-
|
|
11
|
+
reportsNr?: number;
|
|
12
12
|
replyNr?: number;
|
|
13
|
+
createdAt: Date;
|
|
13
14
|
}
|
|
14
|
-
interface CommentModel extends mongoose.Model<
|
|
15
|
-
build(attrs:
|
|
16
|
-
}
|
|
17
|
-
interface CommentDocument extends mongoose.Document {
|
|
18
|
-
postId: string;
|
|
19
|
-
userId: string;
|
|
20
|
-
username: string;
|
|
21
|
-
profilePicUrl: string;
|
|
22
|
-
text: string;
|
|
23
|
-
likes: number;
|
|
24
|
-
upVotes: number;
|
|
25
|
-
downVotes: number;
|
|
26
|
-
reportNr: number;
|
|
27
|
-
replyNr: number;
|
|
15
|
+
interface CommentModel extends mongoose.Model<Comment> {
|
|
16
|
+
build(attrs: Comment): Comment;
|
|
28
17
|
}
|
|
29
18
|
declare const Comment: CommentModel;
|
|
30
19
|
export default Comment;
|
package/build/models/Comment.js
CHANGED
|
@@ -1,32 +1,73 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
5
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const mongoose_1 =
|
|
7
|
-
const commentSchema = new mongoose_1.
|
|
8
|
-
postId: {
|
|
9
|
-
|
|
36
|
+
const mongoose_1 = __importStar(require("mongoose"));
|
|
37
|
+
const commentSchema = new mongoose_1.Schema({
|
|
38
|
+
postId: {
|
|
39
|
+
type: mongoose_1.Schema.Types.ObjectId,
|
|
40
|
+
ref: 'Post',
|
|
41
|
+
required: true,
|
|
42
|
+
index: true,
|
|
43
|
+
},
|
|
44
|
+
userId: {
|
|
45
|
+
type: mongoose_1.Schema.Types.ObjectId,
|
|
46
|
+
ref: 'User',
|
|
47
|
+
required: true,
|
|
48
|
+
},
|
|
10
49
|
username: { type: String, required: true },
|
|
11
50
|
profilePicUrl: { type: String, default: '' },
|
|
12
51
|
text: { type: String, required: true },
|
|
13
52
|
likes: { type: Number, required: false, default: 0 },
|
|
14
53
|
upVotes: { type: Number, required: false, default: 0 },
|
|
15
54
|
downVotes: { type: Number, required: false, default: 0 },
|
|
16
|
-
|
|
55
|
+
reportsNr: { type: Number, required: false, default: 0 },
|
|
17
56
|
replyNr: { type: Number, required: false, default: 0 },
|
|
57
|
+
createdAt: { type: Date, default: Date.now },
|
|
18
58
|
}, {
|
|
19
59
|
toJSON: {
|
|
20
60
|
transform(doc, ret) {
|
|
21
61
|
ret.id = ret._id;
|
|
22
62
|
delete ret.__v;
|
|
23
63
|
delete ret._id;
|
|
24
|
-
delete ret.
|
|
64
|
+
delete ret.reportsNr;
|
|
25
65
|
},
|
|
26
66
|
},
|
|
27
67
|
});
|
|
28
68
|
commentSchema.statics.build = (attrs) => {
|
|
29
69
|
return new Comment(attrs);
|
|
30
70
|
};
|
|
71
|
+
commentSchema.index({ postId: 1 });
|
|
31
72
|
const Comment = mongoose_1.default.model('Comment', commentSchema);
|
|
32
73
|
exports.default = Comment;
|
package/build/models/Follow.js
CHANGED
|
@@ -60,6 +60,8 @@ const followSchema = new mongoose_1.Schema({
|
|
|
60
60
|
});
|
|
61
61
|
// Ensure a user cannot follow the same person multiple times
|
|
62
62
|
followSchema.index({ followerId: 1, followingId: 1 }, { unique: true });
|
|
63
|
+
followSchema.index({ followerId: 1 });
|
|
64
|
+
followSchema.index({ followingId: 1 });
|
|
63
65
|
// Create and export the model
|
|
64
66
|
const Follow = mongoose_1.default.model('Follow', followSchema);
|
|
65
67
|
exports.default = Follow;
|
package/build/models/Like.js
CHANGED
|
@@ -60,6 +60,7 @@ const likeSchema = new mongoose_1.Schema({
|
|
|
60
60
|
});
|
|
61
61
|
// Ensure a user cannot like the same person multiple times
|
|
62
62
|
likeSchema.index({ userId: 1, postId: 1 }, { unique: true });
|
|
63
|
+
likeSchema.index({ userId: 1 });
|
|
63
64
|
// Create and export the model
|
|
64
65
|
const Like = mongoose_1.default.model('Like', likeSchema);
|
|
65
66
|
exports.default = Like;
|
package/build/models/Post.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import mongoose from 'mongoose';
|
|
1
|
+
import mongoose, { Document, Model } from 'mongoose';
|
|
2
2
|
import { PostType } from '../enums/PostType';
|
|
3
|
-
interface
|
|
3
|
+
interface Post extends Document {
|
|
4
4
|
userId: mongoose.Types.ObjectId;
|
|
5
5
|
username: string;
|
|
6
6
|
profilePicUrl: string;
|
|
@@ -11,21 +11,10 @@ interface PostAttributes {
|
|
|
11
11
|
postType: PostType;
|
|
12
12
|
reportsNr?: number;
|
|
13
13
|
contentUrl: string;
|
|
14
|
+
createdAt: Date;
|
|
14
15
|
}
|
|
15
|
-
interface PostModel extends
|
|
16
|
-
build(attrs:
|
|
17
|
-
}
|
|
18
|
-
interface PostDocument extends mongoose.Document {
|
|
19
|
-
userId: mongoose.Types.ObjectId;
|
|
20
|
-
username: string;
|
|
21
|
-
profilePicUrl: string;
|
|
22
|
-
caption: string;
|
|
23
|
-
likesNr: number;
|
|
24
|
-
commentsNr: number;
|
|
25
|
-
savesNr: number;
|
|
26
|
-
postType: PostType;
|
|
27
|
-
reportsNr: number;
|
|
28
|
-
contentUrl: string;
|
|
16
|
+
interface PostModel extends Model<Post> {
|
|
17
|
+
build(attrs: Post): Post;
|
|
29
18
|
}
|
|
30
19
|
declare const Post: PostModel;
|
|
31
20
|
export default Post;
|
package/build/models/Post.js
CHANGED
|
@@ -34,8 +34,13 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
const mongoose_1 = __importStar(require("mongoose"));
|
|
37
|
-
const postSchema = new mongoose_1.
|
|
38
|
-
userId: {
|
|
37
|
+
const postSchema = new mongoose_1.Schema({
|
|
38
|
+
userId: {
|
|
39
|
+
type: mongoose_1.Schema.Types.ObjectId,
|
|
40
|
+
ref: 'User',
|
|
41
|
+
required: true,
|
|
42
|
+
index: true,
|
|
43
|
+
},
|
|
39
44
|
username: { type: String, required: true },
|
|
40
45
|
profilePicUrl: { type: String, default: '' },
|
|
41
46
|
caption: { type: String, default: '' },
|
|
@@ -45,6 +50,7 @@ const postSchema = new mongoose_1.default.Schema({
|
|
|
45
50
|
postType: { type: String, required: true },
|
|
46
51
|
reportsNr: { type: Number, required: false, default: 0 },
|
|
47
52
|
contentUrl: { type: String, required: true },
|
|
53
|
+
createdAt: { type: Date, default: Date.now },
|
|
48
54
|
}, {
|
|
49
55
|
toJSON: {
|
|
50
56
|
transform(doc, ret) {
|
|
@@ -58,5 +64,6 @@ const postSchema = new mongoose_1.default.Schema({
|
|
|
58
64
|
postSchema.statics.build = (attrs) => {
|
|
59
65
|
return new Post(attrs);
|
|
60
66
|
};
|
|
67
|
+
postSchema.index({ userId: 1 });
|
|
61
68
|
const Post = mongoose_1.default.model('Post', postSchema);
|
|
62
69
|
exports.default = Post;
|
package/build/models/Reply.d.ts
CHANGED
|
@@ -1,28 +1,18 @@
|
|
|
1
|
-
import mongoose from 'mongoose';
|
|
2
|
-
interface
|
|
3
|
-
commentId:
|
|
4
|
-
userId:
|
|
1
|
+
import mongoose, { Document } from 'mongoose';
|
|
2
|
+
interface Reply extends Document {
|
|
3
|
+
commentId: mongoose.Types.ObjectId;
|
|
4
|
+
userId: mongoose.Types.ObjectId;
|
|
5
5
|
username: string;
|
|
6
6
|
profilePicUrl: string;
|
|
7
7
|
text: string;
|
|
8
8
|
likes?: number;
|
|
9
9
|
upVotes?: number;
|
|
10
10
|
downVotes?: number;
|
|
11
|
-
|
|
11
|
+
reportsNr?: number;
|
|
12
|
+
createdAt: Date;
|
|
12
13
|
}
|
|
13
|
-
interface ReplyModel extends mongoose.Model<
|
|
14
|
-
build(attrs:
|
|
15
|
-
}
|
|
16
|
-
interface ReplyDocument extends mongoose.Document {
|
|
17
|
-
commentId: string;
|
|
18
|
-
userId: string;
|
|
19
|
-
username: string;
|
|
20
|
-
profilePicUrl: string;
|
|
21
|
-
text: string;
|
|
22
|
-
likes: number;
|
|
23
|
-
upVotes: number;
|
|
24
|
-
downVotes: number;
|
|
25
|
-
reportNr: number;
|
|
14
|
+
interface ReplyModel extends mongoose.Model<Reply> {
|
|
15
|
+
build(attrs: Reply): Reply;
|
|
26
16
|
}
|
|
27
17
|
declare const Reply: ReplyModel;
|
|
28
18
|
export default Reply;
|
package/build/models/Reply.js
CHANGED
|
@@ -1,31 +1,68 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
5
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const mongoose_1 =
|
|
36
|
+
const mongoose_1 = __importStar(require("mongoose"));
|
|
7
37
|
const replySchema = new mongoose_1.default.Schema({
|
|
8
|
-
commentId: {
|
|
9
|
-
|
|
38
|
+
commentId: {
|
|
39
|
+
type: mongoose_1.Schema.Types.ObjectId,
|
|
40
|
+
ref: 'Comment',
|
|
41
|
+
index: true,
|
|
42
|
+
required: true,
|
|
43
|
+
},
|
|
44
|
+
userId: { type: mongoose_1.Schema.Types.ObjectId, ref: 'User', required: true },
|
|
10
45
|
username: { type: String, required: true },
|
|
11
46
|
profilePicUrl: { type: String, default: '' },
|
|
12
47
|
text: { type: String, required: true },
|
|
13
48
|
likes: { type: Number, required: false, default: 0 },
|
|
14
49
|
upVotes: { type: Number, required: false, default: 0 },
|
|
15
50
|
downVotes: { type: Number, required: false, default: 0 },
|
|
16
|
-
|
|
51
|
+
reportsNr: { type: Number, required: false, default: 0 },
|
|
52
|
+
createdAt: { type: Date, default: Date.now },
|
|
17
53
|
}, {
|
|
18
54
|
toJSON: {
|
|
19
55
|
transform(doc, ret) {
|
|
20
56
|
ret.id = ret._id;
|
|
21
57
|
delete ret.__v;
|
|
22
58
|
delete ret._id;
|
|
23
|
-
delete ret.
|
|
59
|
+
delete ret.reportsNr;
|
|
24
60
|
},
|
|
25
61
|
},
|
|
26
62
|
});
|
|
27
63
|
replySchema.statics.build = (attrs) => {
|
|
28
64
|
return new Reply(attrs);
|
|
29
65
|
};
|
|
66
|
+
replySchema.index({ commentId: 1 });
|
|
30
67
|
const Reply = mongoose_1.default.model('Reply', replySchema);
|
|
31
68
|
exports.default = Reply;
|
package/build/models/User.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Document, Model } from 'mongoose';
|
|
2
2
|
import { AccountType } from '../enums/AccountType';
|
|
3
3
|
import { PaidPlan } from '../enums/PaidPlan';
|
|
4
|
-
interface
|
|
4
|
+
interface User extends Document {
|
|
5
5
|
email: string;
|
|
6
6
|
username: string;
|
|
7
7
|
password: string;
|
|
@@ -24,33 +24,10 @@ interface UserAttributes {
|
|
|
24
24
|
profession?: string;
|
|
25
25
|
grossIncome?: number;
|
|
26
26
|
netIncome?: number;
|
|
27
|
+
createdAt: Date;
|
|
27
28
|
}
|
|
28
|
-
interface UserModel extends
|
|
29
|
-
build(attrs:
|
|
30
|
-
}
|
|
31
|
-
interface UserDocument extends mongoose.Document {
|
|
32
|
-
email: string;
|
|
33
|
-
username: string;
|
|
34
|
-
password: string;
|
|
35
|
-
name: string;
|
|
36
|
-
surname: string;
|
|
37
|
-
profilePicUrl: string;
|
|
38
|
-
accountType: AccountType;
|
|
39
|
-
followers: number;
|
|
40
|
-
following: number;
|
|
41
|
-
postsNr: number;
|
|
42
|
-
phoneNumber: string;
|
|
43
|
-
verified: boolean;
|
|
44
|
-
paidPlan: PaidPlan;
|
|
45
|
-
totalLikes: number;
|
|
46
|
-
totalUpVotes: number;
|
|
47
|
-
totalDownVotes: number;
|
|
48
|
-
location: string;
|
|
49
|
-
height: number;
|
|
50
|
-
weight: number;
|
|
51
|
-
profession: string;
|
|
52
|
-
grossIncome: number;
|
|
53
|
-
netIncome: number;
|
|
29
|
+
interface UserModel extends Model<User> {
|
|
30
|
+
build(attrs: User): User;
|
|
54
31
|
}
|
|
55
32
|
declare const User: UserModel;
|
|
56
33
|
export default User;
|
package/build/models/User.js
CHANGED
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
36
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
37
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -12,12 +45,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
45
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
46
|
};
|
|
14
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const mongoose_1 =
|
|
48
|
+
const mongoose_1 = __importStar(require("mongoose"));
|
|
16
49
|
const PaidPlan_1 = require("../enums/PaidPlan");
|
|
17
50
|
const password_1 = __importDefault(require("../utils/password"));
|
|
18
|
-
const userSchema = new mongoose_1.
|
|
51
|
+
const userSchema = new mongoose_1.Schema({
|
|
19
52
|
email: { type: String, required: true, unique: true },
|
|
20
|
-
username: { type: String, required: true, unique: true },
|
|
53
|
+
username: { type: String, required: true, index: true, unique: true },
|
|
21
54
|
password: { type: String, required: true },
|
|
22
55
|
name: { type: String, required: true },
|
|
23
56
|
surname: { type: String, required: true },
|
|
@@ -38,6 +71,7 @@ const userSchema = new mongoose_1.default.Schema({
|
|
|
38
71
|
profession: { type: String, required: false, default: '' },
|
|
39
72
|
grossIncome: { type: Number, required: false, default: 0 },
|
|
40
73
|
netIncome: { type: Number, required: false, default: 0 },
|
|
74
|
+
createdAt: { type: Date, default: Date.now },
|
|
41
75
|
}, {
|
|
42
76
|
toJSON: {
|
|
43
77
|
transform(doc, ret) {
|
|
@@ -53,6 +87,7 @@ const userSchema = new mongoose_1.default.Schema({
|
|
|
53
87
|
delete ret.profession;
|
|
54
88
|
delete ret.grossIncome;
|
|
55
89
|
delete ret.netIncome;
|
|
90
|
+
delete ret.createdAt;
|
|
56
91
|
},
|
|
57
92
|
},
|
|
58
93
|
});
|
|
@@ -68,6 +103,6 @@ userSchema.pre('save', function (done) {
|
|
|
68
103
|
userSchema.statics.build = (attrs) => {
|
|
69
104
|
return new User(attrs);
|
|
70
105
|
};
|
|
71
|
-
userSchema.index({
|
|
106
|
+
userSchema.index({ username: 1 }, { unique: true });
|
|
72
107
|
const User = mongoose_1.default.model('User', userSchema);
|
|
73
108
|
exports.default = User;
|