@armi-wave/common 1.23.2 → 1.23.4

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/index.d.ts CHANGED
@@ -3,13 +3,14 @@ import Post from './models/Post';
3
3
  import Comment from './models/Comment';
4
4
  import Reply from './models/Reply';
5
5
  import Follow from './models/Follow';
6
+ import Like from './models/Like';
6
7
  import BadRequestError from './errors/bad-request-error';
7
8
  import DatabaseConnectionError from './errors/database-connection-error';
8
9
  import CustomError from './errors/custom-error';
9
10
  import NotAuthorizedError from './errors/not-authorized-error';
10
11
  import NotFoundError from './errors/not-found-error';
11
12
  import RequestValidationError from './errors/request-validation-error';
12
- export { User, Post, Comment, Reply, Follow };
13
+ export { User, Post, Comment, Reply, Follow, Like };
13
14
  export { BadRequestError, DatabaseConnectionError, CustomError, NotAuthorizedError, NotFoundError, RequestValidationError, };
14
15
  export * from './middlewares/current-user';
15
16
  export * from './middlewares/error-handler';
package/build/index.js CHANGED
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.upload = exports.ensureBucketExists = exports.minioClient = exports.RequestValidationError = exports.NotFoundError = exports.NotAuthorizedError = exports.CustomError = exports.DatabaseConnectionError = exports.BadRequestError = exports.Follow = exports.Reply = exports.Comment = exports.Post = exports.User = void 0;
20
+ exports.upload = exports.ensureBucketExists = exports.minioClient = exports.RequestValidationError = exports.NotFoundError = exports.NotAuthorizedError = exports.CustomError = exports.DatabaseConnectionError = exports.BadRequestError = exports.Like = exports.Follow = exports.Reply = exports.Comment = exports.Post = exports.User = void 0;
21
21
  const User_1 = __importDefault(require("./models/User"));
22
22
  exports.User = User_1.default;
23
23
  const Post_1 = __importDefault(require("./models/Post"));
@@ -28,6 +28,8 @@ const Reply_1 = __importDefault(require("./models/Reply"));
28
28
  exports.Reply = Reply_1.default;
29
29
  const Follow_1 = __importDefault(require("./models/Follow"));
30
30
  exports.Follow = Follow_1.default;
31
+ const Like_1 = __importDefault(require("./models/Like"));
32
+ exports.Like = Like_1.default;
31
33
  const bad_request_error_1 = __importDefault(require("./errors/bad-request-error"));
32
34
  exports.BadRequestError = bad_request_error_1.default;
33
35
  const database_connection_error_1 = __importDefault(require("./errors/database-connection-error"));
@@ -0,0 +1,10 @@
1
+ import mongoose, { Document, Model } from 'mongoose';
2
+ interface Like extends Document {
3
+ userId: mongoose.Types.ObjectId;
4
+ postId: mongoose.Types.ObjectId;
5
+ createdAt: Date;
6
+ }
7
+ interface LikeModel extends Model<Like> {
8
+ }
9
+ declare const Like: LikeModel;
10
+ export default Like;
@@ -0,0 +1,65 @@
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
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const mongoose_1 = __importStar(require("mongoose"));
37
+ // Define the schema
38
+ const likeSchema = new mongoose_1.Schema({
39
+ userId: {
40
+ type: mongoose_1.Schema.Types.ObjectId,
41
+ ref: 'User',
42
+ required: true,
43
+ index: true,
44
+ },
45
+ postId: {
46
+ type: mongoose_1.Schema.Types.ObjectId,
47
+ ref: 'Post',
48
+ required: true,
49
+ index: true,
50
+ },
51
+ createdAt: { type: Date, default: Date.now },
52
+ }, {
53
+ toJSON: {
54
+ transform(doc, ret) {
55
+ ret.id = ret._id;
56
+ delete ret.__v;
57
+ delete ret._id;
58
+ },
59
+ },
60
+ });
61
+ // Ensure a user cannot like the same person multiple times
62
+ likeSchema.index({ userId: 1, postId: 1 }, { unique: true });
63
+ // Create and export the model
64
+ const Like = mongoose_1.default.model('Like', likeSchema);
65
+ exports.default = Like;
@@ -1,33 +1,31 @@
1
1
  import mongoose from 'mongoose';
2
2
  import { PostType } from '../enums/PostType';
3
3
  interface PostAttributes {
4
- userId: string;
4
+ userId: mongoose.Types.ObjectId;
5
+ profilePicUrl?: string;
5
6
  username: string;
6
- likes?: number;
7
- upVotes?: number;
8
- downVotes?: number;
7
+ likesNr?: number;
9
8
  commentsNr?: number;
10
- saved?: number;
9
+ savesNr?: number;
11
10
  postType: PostType;
12
- reportNr?: number;
11
+ reportsNr?: number;
13
12
  contentUrl: string;
14
- text?: string;
13
+ caption?: string;
15
14
  }
16
15
  interface PostModel extends mongoose.Model<PostDocument> {
17
16
  build(attrs: PostAttributes): PostDocument;
18
17
  }
19
18
  interface PostDocument extends mongoose.Document {
20
- userId: string;
19
+ userId: mongoose.Types.ObjectId;
20
+ profilePicUrl: string;
21
21
  username: string;
22
- likes: number;
23
- upVotes: number;
24
- downVotes: number;
22
+ likesNr: number;
25
23
  commentsNr: number;
26
- saved: number;
24
+ savesNr: number;
27
25
  postType: PostType;
28
- reportNr: number;
26
+ reportsNr: number;
29
27
  contentUrl: string;
30
- text: string;
28
+ caption: string;
31
29
  }
32
30
  declare const Post: PostModel;
33
31
  export default Post;
@@ -1,21 +1,50 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
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 = __importDefault(require("mongoose"));
36
+ const mongoose_1 = __importStar(require("mongoose"));
7
37
  const postSchema = new mongoose_1.default.Schema({
8
- userId: { type: String, required: true },
38
+ userId: { type: mongoose_1.Schema.Types.ObjectId, required: true },
39
+ profilePicUrl: { type: String, required: false, default: '' },
9
40
  username: { type: String, required: true },
10
- likes: { type: Number, required: false, default: 0 },
11
- upVotes: { type: Number, required: false, default: 0 },
12
- downVotes: { type: Number, required: false, default: 0 },
41
+ likesNr: { type: Number, required: false, default: 0 },
13
42
  commentsNr: { type: Number, required: false, default: 0 },
14
- saved: { type: Number, required: false, default: 0 },
43
+ savesNr: { type: Number, required: false, default: 0 },
15
44
  postType: { type: String, required: true },
16
- reportNr: { type: Number, required: false, default: 0 },
45
+ reportsNr: { type: Number, required: false, default: 0 },
17
46
  contentUrl: { type: String, required: true },
18
- text: { type: String, required: false, default: '' },
47
+ caption: { type: String, required: false, default: '' },
19
48
  }, {
20
49
  toJSON: {
21
50
  transform(doc, ret) {
@@ -7,7 +7,7 @@ interface UserAttributes {
7
7
  password: string;
8
8
  name: string;
9
9
  surname: string;
10
- profilePicUr?: string;
10
+ profilePicUrl?: string;
11
11
  accountType: AccountType;
12
12
  followers?: number;
13
13
  following?: number;
@@ -15,13 +15,6 @@ interface UserAttributes {
15
15
  phoneNumber: string;
16
16
  verified?: boolean;
17
17
  paidPlan?: PaidPlan;
18
- savedPosts?: string[];
19
- likedPosts?: string[];
20
- upVotedPosts?: string[];
21
- likedComments?: string[];
22
- bannedAccounts?: string[];
23
- reportedPosts?: string[];
24
- validReportedPosts?: string[];
25
18
  totalLikes?: number;
26
19
  totalUpVotes?: number;
27
20
  totalDownVotes?: number;
@@ -49,13 +42,6 @@ interface UserDocument extends mongoose.Document {
49
42
  phoneNumber: string;
50
43
  verified: boolean;
51
44
  paidPlan: PaidPlan;
52
- savedPosts: string[];
53
- likedPosts: string[];
54
- upVotedPosts: string[];
55
- likedComments: string[];
56
- bannedAccounts: string[];
57
- reportedPosts: string[];
58
- validReportedPosts: string[];
59
45
  totalLikes: number;
60
46
  totalUpVotes: number;
61
47
  totalDownVotes: number;
@@ -29,13 +29,6 @@ const userSchema = new mongoose_1.default.Schema({
29
29
  phoneNumber: { type: String, required: true },
30
30
  verified: { type: Boolean, required: false, default: false },
31
31
  paidPlan: { type: String, required: false, default: PaidPlan_1.PaidPlan.None },
32
- savedPosts: { type: Array, required: false, default: 0 },
33
- likedPosts: { type: Array, required: false, default: 0 },
34
- upVotedPosts: { type: Array, required: false, default: 0 },
35
- likedComments: { type: Array, required: false, default: [] },
36
- bannedAccounts: { type: Array, required: false, default: [] },
37
- reportedPosts: { type: Array, required: false, default: [] },
38
- validReportedPosts: { type: Array, required: false, default: [] },
39
32
  totalLikes: { type: Number, required: false, default: 0 },
40
33
  totalUpVotes: { type: Number, required: false, default: 0 },
41
34
  totalDownVotes: { type: Number, required: false, default: 0 },
@@ -54,12 +47,6 @@ const userSchema = new mongoose_1.default.Schema({
54
47
  delete ret._id;
55
48
  delete ret.phoneNumber;
56
49
  delete ret.paidPlan;
57
- delete ret.savedPosts;
58
- delete ret.likedPosts;
59
- delete ret.upVotedPosts;
60
- delete ret.likedComments;
61
- delete ret.reportedPosts;
62
- delete ret.validReportedPosts;
63
50
  delete ret.location;
64
51
  delete ret.height;
65
52
  delete ret.weight;
@@ -81,5 +68,6 @@ userSchema.pre('save', function (done) {
81
68
  userSchema.statics.build = (attrs) => {
82
69
  return new User(attrs);
83
70
  };
71
+ userSchema.index({ email: 1, username: 1 }, { unique: true });
84
72
  const User = mongoose_1.default.model('User', userSchema);
85
73
  exports.default = User;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@armi-wave/common",
3
- "version": "1.23.2",
3
+ "version": "1.23.4",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",