@fplpool/fpl-models 1.0.0 → 1.1.0
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/dist/config/index.d.ts +34 -0
- package/dist/config/index.d.ts.map +1 -0
- package/{src/config/index.ts → dist/config/index.js} +7 -8
- package/dist/config/index.js.map +1 -0
- package/dist/enums/status-code.enum.d.ts +32 -0
- package/dist/enums/status-code.enum.d.ts.map +1 -0
- package/dist/enums/status-code.enum.js +36 -0
- package/dist/enums/status-code.enum.js.map +1 -0
- package/dist/enums/status.enum.d.ts +7 -0
- package/dist/enums/status.enum.d.ts.map +1 -0
- package/dist/enums/status.enum.js +10 -0
- package/dist/enums/status.enum.js.map +1 -0
- package/dist/errors/advanced.error.d.ts +5 -0
- package/dist/errors/advanced.error.d.ts.map +1 -0
- package/dist/errors/advanced.error.js +10 -0
- package/dist/errors/advanced.error.js.map +1 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/dist/models/card.model.d.ts +22 -0
- package/dist/models/card.model.d.ts.map +1 -0
- package/{src/models/card.model.ts → dist/models/card.model.js} +20 -35
- package/dist/models/card.model.js.map +1 -0
- package/dist/models/config.model.d.ts +21 -0
- package/dist/models/config.model.d.ts.map +1 -0
- package/{src/models/config.model.ts → dist/models/config.model.js} +8 -23
- package/dist/models/config.model.js.map +1 -0
- package/dist/models/invoice.model.d.ts +35 -0
- package/dist/models/invoice.model.d.ts.map +1 -0
- package/dist/models/invoice.model.js +79 -0
- package/dist/models/invoice.model.js.map +1 -0
- package/dist/models/job.model.d.ts +26 -0
- package/dist/models/job.model.d.ts.map +1 -0
- package/dist/models/job.model.js +48 -0
- package/dist/models/job.model.js.map +1 -0
- package/dist/models/pool-gameweek-deadline.model.d.ts +21 -0
- package/dist/models/pool-gameweek-deadline.model.d.ts.map +1 -0
- package/dist/models/pool-gameweek-deadline.model.js +37 -0
- package/dist/models/pool-gameweek-deadline.model.js.map +1 -0
- package/dist/models/pool-gameweek-winner.model.d.ts +24 -0
- package/dist/models/pool-gameweek-winner.model.d.ts.map +1 -0
- package/dist/models/pool-gameweek-winner.model.js +43 -0
- package/dist/models/pool-gameweek-winner.model.js.map +1 -0
- package/dist/models/pool-gameweek.model.d.ts +27 -0
- package/dist/models/pool-gameweek.model.d.ts.map +1 -0
- package/dist/models/pool-gameweek.model.js +99 -0
- package/dist/models/pool-gameweek.model.js.map +1 -0
- package/dist/models/pool-invite.model.d.ts +26 -0
- package/dist/models/pool-invite.model.d.ts.map +1 -0
- package/dist/models/pool-invite.model.js +54 -0
- package/dist/models/pool-invite.model.js.map +1 -0
- package/dist/models/pool-member.model.d.ts +22 -0
- package/dist/models/pool-member.model.d.ts.map +1 -0
- package/dist/models/pool-member.model.js +45 -0
- package/dist/models/pool-member.model.js.map +1 -0
- package/dist/models/pool-transaction.model.d.ts +31 -0
- package/dist/models/pool-transaction.model.d.ts.map +1 -0
- package/dist/models/pool-transaction.model.js +109 -0
- package/dist/models/pool-transaction.model.js.map +1 -0
- package/dist/models/pool-wallet.model.d.ts +18 -0
- package/dist/models/pool-wallet.model.d.ts.map +1 -0
- package/dist/models/pool-wallet.model.js +86 -0
- package/dist/models/pool-wallet.model.js.map +1 -0
- package/dist/models/pool.model.d.ts +42 -0
- package/dist/models/pool.model.d.ts.map +1 -0
- package/{src/models/pool.model.ts → dist/models/pool.model.js} +33 -65
- package/dist/models/pool.model.js.map +1 -0
- package/dist/models/session.model.d.ts +19 -0
- package/dist/models/session.model.d.ts.map +1 -0
- package/dist/models/session.model.js +28 -0
- package/dist/models/session.model.js.map +1 -0
- package/dist/models/transaction.model.d.ts +32 -0
- package/dist/models/transaction.model.d.ts.map +1 -0
- package/{src/models/transaction.model.ts → dist/models/transaction.model.js} +38 -65
- package/dist/models/transaction.model.js.map +1 -0
- package/dist/models/user-settings.model.d.ts +20 -0
- package/dist/models/user-settings.model.d.ts.map +1 -0
- package/{src/models/user-settings.model.ts → dist/models/user-settings.model.js} +14 -29
- package/dist/models/user-settings.model.js.map +1 -0
- package/dist/models/user.model.d.ts +23 -0
- package/dist/models/user.model.d.ts.map +1 -0
- package/{src/models/user.model.ts → dist/models/user.model.js} +20 -37
- package/dist/models/user.model.js.map +1 -0
- package/dist/models/wallet.model.d.ts +23 -0
- package/dist/models/wallet.model.d.ts.map +1 -0
- package/dist/models/wallet.model.js +141 -0
- package/dist/models/wallet.model.js.map +1 -0
- package/dist/repositories/generic.repository.d.ts +17 -0
- package/dist/repositories/generic.repository.d.ts.map +1 -0
- package/dist/repositories/generic.repository.js +55 -0
- package/dist/repositories/generic.repository.js.map +1 -0
- package/dist/types/pool.d.ts +6 -0
- package/dist/types/pool.d.ts.map +1 -0
- package/dist/types/pool.js +10 -0
- package/dist/types/pool.js.map +1 -0
- package/dist/types/wallet.d.ts +16 -0
- package/dist/types/wallet.d.ts.map +1 -0
- package/dist/types/wallet.js +22 -0
- package/dist/types/wallet.js.map +1 -0
- package/package.json +11 -4
- package/src/index.ts +0 -19
- package/src/models/invoice.model.ts +0 -100
- package/src/models/job.model.ts +0 -62
- package/src/models/pool-gameweek-deadline.model.ts +0 -46
- package/src/models/pool-gameweek-winner.model.ts +0 -55
- package/src/models/pool-gameweek.model.ts +0 -114
- package/src/models/pool-invite.model.ts +0 -65
- package/src/models/pool-member.model.ts +0 -53
- package/src/models/pool-transaction.model.ts +0 -130
- package/src/models/pool-wallet.model.ts +0 -89
- package/src/models/session.model.ts +0 -45
- package/src/models/wallet.model.ts +0 -154
- package/src/repositories/generic.repository.ts +0 -86
- package/tsconfig.json +0 -103
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.model.js","sourceRoot":"","sources":["../../src/models/transaction.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Document } from "mongoose";
|
|
2
|
+
import { Types } from "mongoose";
|
|
3
|
+
export interface IUserSettings extends Document {
|
|
4
|
+
_id: Types.ObjectId;
|
|
5
|
+
twoFaEnabled: boolean;
|
|
6
|
+
twoFaSecret?: string;
|
|
7
|
+
country: string;
|
|
8
|
+
currency: string;
|
|
9
|
+
createdAt: Date;
|
|
10
|
+
updatedAt: Date;
|
|
11
|
+
}
|
|
12
|
+
declare const UserSettings: import("mongoose").Model<IUserSettings, {}, {}, {}, Document<unknown, {}, IUserSettings, {}, import("mongoose").DefaultSchemaOptions> & IUserSettings & Required<{
|
|
13
|
+
_id: Types.ObjectId;
|
|
14
|
+
}> & {
|
|
15
|
+
__v: number;
|
|
16
|
+
} & {
|
|
17
|
+
id: string;
|
|
18
|
+
}, any, IUserSettings>;
|
|
19
|
+
export default UserSettings;
|
|
20
|
+
//# sourceMappingURL=user-settings.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-settings.model.d.ts","sourceRoot":"","sources":["../../src/models/user-settings.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAgB,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAOjC,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC3C,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACnB;AAkCD,QAAA,MAAM,YAAY;;;;;;sBAAuE,CAAC;AAE1F,eAAe,YAAY,CAAC"}
|
|
@@ -1,23 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export interface IUserSettings extends Document {
|
|
10
|
-
_id: Types.ObjectId;
|
|
11
|
-
twoFaEnabled: boolean;
|
|
12
|
-
twoFaSecret?: string;
|
|
13
|
-
country: string;
|
|
14
|
-
currency: string;
|
|
15
|
-
createdAt: Date;
|
|
16
|
-
updatedAt: Date;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const userSettingsSchema = new Schema<IUserSettings>({
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const mongoose_1 = require("mongoose");
|
|
7
|
+
const config_1 = __importDefault(require("../config"));
|
|
8
|
+
const userSettingsSchema = new mongoose_1.Schema({
|
|
21
9
|
twoFaEnabled: {
|
|
22
10
|
type: Boolean,
|
|
23
11
|
required: [true, 'Two factor authentication is required'],
|
|
@@ -42,12 +30,9 @@ const userSettingsSchema = new Schema<IUserSettings>({
|
|
|
42
30
|
},
|
|
43
31
|
}, {
|
|
44
32
|
timestamps: true,
|
|
45
|
-
toJSON: {virtuals: true},
|
|
46
|
-
toObject: {virtuals: true}
|
|
47
|
-
})
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const UserSettings = model<IUserSettings>(config.models.userSettings, userSettingsSchema);
|
|
52
|
-
|
|
53
|
-
export default UserSettings;
|
|
33
|
+
toJSON: { virtuals: true },
|
|
34
|
+
toObject: { virtuals: true }
|
|
35
|
+
});
|
|
36
|
+
const UserSettings = (0, mongoose_1.model)(config_1.default.models.userSettings, userSettingsSchema);
|
|
37
|
+
exports.default = UserSettings;
|
|
38
|
+
//# sourceMappingURL=user-settings.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-settings.model.js","sourceRoot":"","sources":["../../src/models/user-settings.model.ts"],"names":[],"mappings":";;;;;AAAA,uCAAiD;AAGjD,uDAA+B;AAgB/B,MAAM,kBAAkB,GAAG,IAAI,iBAAM,CAAgB;IACjD,YAAY,EAAE;QACV,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,CAAC,IAAI,EAAE,uCAAuC,CAAC;QACzD,OAAO,EAAE,KAAK;KACjB;IACD,WAAW,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,IAAI;KAChB;IACD,OAAO,EAAE;QACL,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,qBAAqB,CAAC;QACvC,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,CAAC,EAAE,EAAE,yCAAyC,CAAC;KAC7D;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,sBAAsB,CAAC;QACxC,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,CAAC,EAAE,EAAE,0CAA0C,CAAC;KAC9D;CACJ,EAAE;IACC,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC;IACxB,QAAQ,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC;CAC7B,CAAC,CAAA;AAIF,MAAM,YAAY,GAAG,IAAA,gBAAK,EAAgB,gBAAM,CAAC,MAAM,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;AAE1F,kBAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Document, Types } from "mongoose";
|
|
2
|
+
import { IUserSettings } from "./user-settings.model";
|
|
3
|
+
export interface IUser extends Document {
|
|
4
|
+
_id: Types.ObjectId;
|
|
5
|
+
uid: string;
|
|
6
|
+
email: string;
|
|
7
|
+
firstName: string;
|
|
8
|
+
lastName: string;
|
|
9
|
+
teamName: string;
|
|
10
|
+
emailVerifiedAt: Date | null;
|
|
11
|
+
settings: IUserSettings;
|
|
12
|
+
createdAt: Date;
|
|
13
|
+
updatedAt: Date;
|
|
14
|
+
}
|
|
15
|
+
declare const User: import("mongoose").Model<IUser, {}, {}, {}, Document<unknown, {}, IUser, {}, import("mongoose").DefaultSchemaOptions> & IUser & Required<{
|
|
16
|
+
_id: Types.ObjectId;
|
|
17
|
+
}> & {
|
|
18
|
+
__v: number;
|
|
19
|
+
} & {
|
|
20
|
+
id: string;
|
|
21
|
+
}, any, IUser>;
|
|
22
|
+
export default User;
|
|
23
|
+
//# sourceMappingURL=user.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.model.d.ts","sourceRoot":"","sources":["../../src/models/user.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAU,KAAK,EAAQ,MAAM,UAAU,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,MAAM,WAAW,KAAM,SAAQ,QAAQ;IACnC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,aAAa,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACnB;AA8DD,QAAA,MAAM,IAAI;;;;;;cAA+C,CAAA;AAEzD,eAAe,IAAI,CAAC"}
|
|
@@ -1,23 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
email: string;
|
|
10
|
-
firstName: string;
|
|
11
|
-
lastName: string;
|
|
12
|
-
teamName: string;
|
|
13
|
-
emailVerifiedAt: Date | null;
|
|
14
|
-
settings: IUserSettings;
|
|
15
|
-
createdAt: Date;
|
|
16
|
-
updatedAt: Date;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const userSchema = new Schema<IUser>({
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const mongoose_1 = require("mongoose");
|
|
7
|
+
const config_1 = __importDefault(require("../config"));
|
|
8
|
+
const userSchema = new mongoose_1.Schema({
|
|
21
9
|
uid: {
|
|
22
10
|
type: String,
|
|
23
11
|
required: [true, 'UID is required'],
|
|
@@ -33,8 +21,8 @@ const userSchema = new Schema<IUser>({
|
|
|
33
21
|
match: [/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/, 'Please enter a valid email']
|
|
34
22
|
},
|
|
35
23
|
settings: {
|
|
36
|
-
type: Schema.Types.ObjectId,
|
|
37
|
-
ref:
|
|
24
|
+
type: mongoose_1.Schema.Types.ObjectId,
|
|
25
|
+
ref: config_1.default.models.userSettings,
|
|
38
26
|
required: true,
|
|
39
27
|
unique: true
|
|
40
28
|
},
|
|
@@ -62,20 +50,15 @@ const userSchema = new Schema<IUser>({
|
|
|
62
50
|
},
|
|
63
51
|
}, {
|
|
64
52
|
timestamps: true,
|
|
65
|
-
toJSON: {virtuals: true},
|
|
66
|
-
toObject: {virtuals: true}
|
|
67
|
-
})
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
})
|
|
72
|
-
|
|
53
|
+
toJSON: { virtuals: true },
|
|
54
|
+
toObject: { virtuals: true }
|
|
55
|
+
});
|
|
56
|
+
userSchema.virtual('fullName').get(function () {
|
|
57
|
+
return `${this.firstName} ${this.lastName}`;
|
|
58
|
+
});
|
|
73
59
|
// userSchema.index({uid: 1})
|
|
74
|
-
userSchema.index({teamName: 1})
|
|
60
|
+
userSchema.index({ teamName: 1 });
|
|
75
61
|
// userSchema.index({email: 1})
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
const User = model<IUser>(config.models.user, userSchema)
|
|
80
|
-
|
|
81
|
-
export default User;
|
|
62
|
+
const User = (0, mongoose_1.model)(config_1.default.models.user, userSchema);
|
|
63
|
+
exports.default = User;
|
|
64
|
+
//# sourceMappingURL=user.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.model.js","sourceRoot":"","sources":["../../src/models/user.model.ts"],"names":[],"mappings":";;;;;AAAA,uCAAwD;AACxD,uDAA+B;AAkB/B,MAAM,UAAU,GAAG,IAAI,iBAAM,CAAQ;IACjC,GAAG,EAAE;QACD,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC;QACnC,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,CAAC,EAAE,EAAE,qCAAqC,CAAC;KACzD;IACD,KAAK,EAAE;QACH,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC;QACrC,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,CAAC,+CAA+C,EAAE,4BAA4B,CAAC;KACzF;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,iBAAM,CAAC,KAAK,CAAC,QAAQ;QAC3B,GAAG,EAAE,gBAAM,CAAC,MAAM,CAAC,YAAY;QAC/B,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;KACf;IACD,SAAS,EAAE;QACP,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,wBAAwB,CAAC;QAC1C,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,CAAC,EAAE,EAAE,4CAA4C,CAAC;KAChE;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,uBAAuB,CAAC;QACzC,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,CAAC,EAAE,EAAE,2CAA2C,CAAC;KAC/D;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,uBAAuB,CAAC;QACzC,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,CAAC,EAAE,EAAE,2CAA2C,CAAC;KAC/D;IACD,eAAe,EAAE;QACb,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;KAChB;CACJ,EAAE;IACC,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC;IACxB,QAAQ,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC;CAC7B,CAAC,CAAA;AAEF,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC;IAC/B,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAA;AAC/C,CAAC,CAAC,CAAA;AAEF,6BAA6B;AAC7B,UAAU,CAAC,KAAK,CAAC,EAAC,QAAQ,EAAE,CAAC,EAAC,CAAC,CAAA;AAC/B,+BAA+B;AAI/B,MAAM,IAAI,GAAG,IAAA,gBAAK,EAAQ,gBAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;AAEzD,kBAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Types, Document } from "mongoose";
|
|
2
|
+
import { ITransaction } from "./transaction.model";
|
|
3
|
+
export interface IWallet extends Document {
|
|
4
|
+
_id: Types.ObjectId;
|
|
5
|
+
user: Types.ObjectId;
|
|
6
|
+
cards: Types.ObjectId[];
|
|
7
|
+
balance: string;
|
|
8
|
+
availableBalance: string;
|
|
9
|
+
customerId?: string;
|
|
10
|
+
createdAt: Date;
|
|
11
|
+
updatedAt: Date;
|
|
12
|
+
debit: (transaction: ITransaction) => Promise<void>;
|
|
13
|
+
refund: (transaction: ITransaction) => Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
declare const Wallet: import("mongoose").Model<IWallet, {}, {}, {}, Document<unknown, {}, IWallet, {}, import("mongoose").DefaultSchemaOptions> & IWallet & Required<{
|
|
16
|
+
_id: Types.ObjectId;
|
|
17
|
+
}> & {
|
|
18
|
+
__v: number;
|
|
19
|
+
} & {
|
|
20
|
+
id: string;
|
|
21
|
+
}, any, IWallet>;
|
|
22
|
+
export default Wallet;
|
|
23
|
+
//# sourceMappingURL=wallet.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.model.d.ts","sourceRoot":"","sources":["../../src/models/wallet.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,EAAE,QAAQ,EAAC,MAAM,UAAU,CAAC;AAIxD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAOnD,MAAM,WAAW,OAAQ,SAAQ,QAAQ;IACrC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,CAAC,WAAW,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,EAAE,CAAC,WAAW,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AA+HD,QAAA,MAAM,MAAM;;;;;;gBAAqD,CAAC;AAGlE,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const mongoose_1 = require("mongoose");
|
|
7
|
+
const config_1 = __importDefault(require("../config"));
|
|
8
|
+
const pool_transaction_model_1 = require("./pool-transaction.model");
|
|
9
|
+
const advanced_error_1 = __importDefault(require("../errors/advanced.error"));
|
|
10
|
+
const status_code_enum_1 = __importDefault(require("../enums/status-code.enum"));
|
|
11
|
+
const wallet_1 = require("../types/wallet");
|
|
12
|
+
const walletSchema = new mongoose_1.Schema({
|
|
13
|
+
user: {
|
|
14
|
+
type: mongoose_1.Schema.Types.ObjectId,
|
|
15
|
+
ref: config_1.default.models.user,
|
|
16
|
+
required: true,
|
|
17
|
+
unique: [true, 'User already has a wallet'],
|
|
18
|
+
},
|
|
19
|
+
customerId: {
|
|
20
|
+
type: String,
|
|
21
|
+
required: false,
|
|
22
|
+
default: null,
|
|
23
|
+
unique: true
|
|
24
|
+
},
|
|
25
|
+
cards: [{
|
|
26
|
+
type: mongoose_1.Schema.Types.ObjectId,
|
|
27
|
+
ref: config_1.default.models.card
|
|
28
|
+
}],
|
|
29
|
+
balance: {
|
|
30
|
+
type: String,
|
|
31
|
+
required: true,
|
|
32
|
+
match: pool_transaction_model_1.poolAmountPattern,
|
|
33
|
+
set: function (value) {
|
|
34
|
+
// If value already looks like a float (has a .), ensure two decimals
|
|
35
|
+
if (typeof value === "string") {
|
|
36
|
+
if (pool_transaction_model_1.poolAmountPattern.test(value)) {
|
|
37
|
+
// If it has a dot but is not two decimals, pad right
|
|
38
|
+
if (value.indexOf('.') !== -1) {
|
|
39
|
+
let [whole, decimals] = value.split('.');
|
|
40
|
+
if (decimals === undefined)
|
|
41
|
+
return whole + ".00";
|
|
42
|
+
if (decimals.length === 1)
|
|
43
|
+
return whole + "." + decimals + "0";
|
|
44
|
+
if (decimals.length === 2)
|
|
45
|
+
return value;
|
|
46
|
+
if (decimals.length > 2)
|
|
47
|
+
return whole + "." + decimals.slice(0, 2);
|
|
48
|
+
}
|
|
49
|
+
// No decimal: add .00
|
|
50
|
+
return value + ".00";
|
|
51
|
+
}
|
|
52
|
+
// If it's an integer, add .00
|
|
53
|
+
if (/^\d+$/.test(value)) {
|
|
54
|
+
return value + ".00";
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return value;
|
|
58
|
+
},
|
|
59
|
+
default: "0.00"
|
|
60
|
+
},
|
|
61
|
+
availableBalance: {
|
|
62
|
+
type: String,
|
|
63
|
+
required: false,
|
|
64
|
+
match: pool_transaction_model_1.poolAmountPattern,
|
|
65
|
+
set: function (value) {
|
|
66
|
+
// If value already looks like a float (has a .), ensure two decimals
|
|
67
|
+
if (typeof value === "string") {
|
|
68
|
+
if (pool_transaction_model_1.poolAmountPattern.test(value)) {
|
|
69
|
+
// If it has a dot but is not two decimals, pad right
|
|
70
|
+
if (value.indexOf('.') !== -1) {
|
|
71
|
+
let [whole, decimals] = value.split('.');
|
|
72
|
+
if (decimals === undefined)
|
|
73
|
+
return whole + ".00";
|
|
74
|
+
if (decimals.length === 1)
|
|
75
|
+
return whole + "." + decimals + "0";
|
|
76
|
+
if (decimals.length === 2)
|
|
77
|
+
return value;
|
|
78
|
+
if (decimals.length > 2)
|
|
79
|
+
return whole + "." + decimals.slice(0, 2);
|
|
80
|
+
}
|
|
81
|
+
// No decimal: add .00
|
|
82
|
+
return value + ".00";
|
|
83
|
+
}
|
|
84
|
+
// If it's an integer, add .00
|
|
85
|
+
if (/^\d+$/.test(value)) {
|
|
86
|
+
return value + ".00";
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return value;
|
|
90
|
+
},
|
|
91
|
+
default: "0.00"
|
|
92
|
+
}
|
|
93
|
+
}, {
|
|
94
|
+
timestamps: true,
|
|
95
|
+
toJSON: { virtuals: true },
|
|
96
|
+
toObject: { virtuals: true }
|
|
97
|
+
});
|
|
98
|
+
walletSchema.methods.debit = async function (transaction) {
|
|
99
|
+
try {
|
|
100
|
+
if (transaction.type !== wallet_1.TransactionType.Debit)
|
|
101
|
+
throw new advanced_error_1.default('Invalid debit transaction', status_code_enum_1.default.BAD_REQUEST);
|
|
102
|
+
if (transaction.status === wallet_1.TransactionStatus.Failed)
|
|
103
|
+
throw new advanced_error_1.default('This transaction has already failed', status_code_enum_1.default.BAD_REQUEST);
|
|
104
|
+
//at this point the wallet was found
|
|
105
|
+
let hasEnoughBalance = parseFloat(this.balance) >= parseFloat(transaction.amount);
|
|
106
|
+
if (!hasEnoughBalance)
|
|
107
|
+
throw new advanced_error_1.default('Insufficient balance', status_code_enum_1.default.BAD_REQUEST);
|
|
108
|
+
//at this point the wallet has enough funds to make the debit
|
|
109
|
+
if (transaction.status === wallet_1.TransactionStatus.Pending)
|
|
110
|
+
throw new advanced_error_1.default('This transaction is still pending', status_code_enum_1.default.BAD_REQUEST);
|
|
111
|
+
//at this point the status is completed
|
|
112
|
+
this.balance = (parseFloat(this.balance) - parseFloat(transaction.amount)).toString();
|
|
113
|
+
console.log("[*] Wallet debited", { wallet: this.toJSON(), transaction: transaction.toJSON() });
|
|
114
|
+
await this.save();
|
|
115
|
+
}
|
|
116
|
+
catch (e) {
|
|
117
|
+
console.error("[*] Error debiting wallet", { error: e.message, stack: e.stack });
|
|
118
|
+
throw new advanced_error_1.default(e.message, e.statusCode || status_code_enum_1.default.INTERNAL_SERVER_ERROR);
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
walletSchema.methods.refund = async function (transaction) {
|
|
122
|
+
try {
|
|
123
|
+
//check that the transaction is a debit transaction
|
|
124
|
+
if (transaction.type !== wallet_1.TransactionType.Debit)
|
|
125
|
+
throw new advanced_error_1.default("Cannot refund a credit transaction", status_code_enum_1.default.BAD_REQUEST);
|
|
126
|
+
if (transaction.status !== wallet_1.TransactionStatus.Failed)
|
|
127
|
+
throw new advanced_error_1.default("Cannot refund a successful or pending transaction", status_code_enum_1.default.BAD_REQUEST);
|
|
128
|
+
//at this point the transaction checks out
|
|
129
|
+
//now we can refund the balance to their available balance, since we deducted it from their available balance only
|
|
130
|
+
this.availableBalance = parseFloat(this.availableBalance) + parseFloat(transaction.amount);
|
|
131
|
+
console.log("[*] Wallet refunded", { wallet: this.toJSON(), transaction: transaction.toJSON() });
|
|
132
|
+
await this.save();
|
|
133
|
+
}
|
|
134
|
+
catch (e) {
|
|
135
|
+
console.error("[*] Error refunding wallet", { error: e.message, stack: e.stack });
|
|
136
|
+
throw new advanced_error_1.default(e.message, e.statusCode || status_code_enum_1.default.INTERNAL_SERVER_ERROR);
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
const Wallet = (0, mongoose_1.model)(config_1.default.models.wallet, walletSchema);
|
|
140
|
+
exports.default = Wallet;
|
|
141
|
+
//# sourceMappingURL=wallet.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.model.js","sourceRoot":"","sources":["../../src/models/wallet.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Model, PipelineStage, Types, UpdateQuery, QueryFilter } from "mongoose";
|
|
2
|
+
export default class GenericRepository<U> {
|
|
3
|
+
readonly model: Model<U>;
|
|
4
|
+
constructor(model: Model<U>);
|
|
5
|
+
create(data: Partial<U>): Promise<U>;
|
|
6
|
+
get(filters: QueryFilter<U>, populate?: string[]): Promise<U | null>;
|
|
7
|
+
aggregate(pipeline: PipelineStage[]): Promise<any[]>;
|
|
8
|
+
exists(filters: QueryFilter<U>): Promise<boolean>;
|
|
9
|
+
count(filters: QueryFilter<U>): Promise<number>;
|
|
10
|
+
getAll(filters: QueryFilter<U>, populate?: string[]): Promise<U[]>;
|
|
11
|
+
getAllWithoutVirtuals(filters: QueryFilter<U>, virtuals: boolean, populate?: string[]): Promise<U[]>;
|
|
12
|
+
paginate(filters: QueryFilter<U>, populate?: string[], limit?: number, page?: number, order?: 'asc' | 'desc'): Promise<U[]>;
|
|
13
|
+
update(id: Types.ObjectId, entity: UpdateQuery<U>): Promise<U | null>;
|
|
14
|
+
delete(id: Types.ObjectId): Promise<U | null>;
|
|
15
|
+
deleteMany(filters: QueryFilter<U>): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=generic.repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/generic.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAIjF,MAAM,CAAC,OAAO,OAAO,iBAAiB,CAAC,CAAC;aAED,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBAAf,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAErC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAUpC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAOxE,SAAS,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAOpD,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAMjD,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAO/C,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAOtE,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAOxG,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAE,MAAM,EAAO,EAAE,KAAK,GAAE,MAAW,EAAE,IAAI,GAAE,MAAQ,EAAE,KAAK,GAAE,KAAK,GAAG,MAAe,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAO5I,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAOrE,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAO7C,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAKlE"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class GenericRepository {
|
|
4
|
+
constructor(model) {
|
|
5
|
+
this.model = model;
|
|
6
|
+
}
|
|
7
|
+
async create(data) {
|
|
8
|
+
const newEntity = await this.model.create(data);
|
|
9
|
+
await newEntity.save();
|
|
10
|
+
console.log(`Entity created: ${newEntity.toJSON()}`);
|
|
11
|
+
return newEntity;
|
|
12
|
+
}
|
|
13
|
+
async get(filters, populate = []) {
|
|
14
|
+
const entity = await this.model.findOne(filters).populate(populate);
|
|
15
|
+
return entity;
|
|
16
|
+
}
|
|
17
|
+
async aggregate(pipeline) {
|
|
18
|
+
const result = await this.model.aggregate(pipeline).exec();
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
async exists(filters) {
|
|
22
|
+
const entity = await this.model.exists(filters);
|
|
23
|
+
return entity ? true : false;
|
|
24
|
+
}
|
|
25
|
+
async count(filters) {
|
|
26
|
+
const count = await this.model.countDocuments(filters);
|
|
27
|
+
return count;
|
|
28
|
+
}
|
|
29
|
+
async getAll(filters, populate = []) {
|
|
30
|
+
const entities = await this.model.find(filters).populate(populate);
|
|
31
|
+
return entities;
|
|
32
|
+
}
|
|
33
|
+
async getAllWithoutVirtuals(filters, virtuals, populate = []) {
|
|
34
|
+
const entities = await this.model.find(filters).populate(populate).lean({ virtuals });
|
|
35
|
+
return entities;
|
|
36
|
+
}
|
|
37
|
+
async paginate(filters, populate = [], limit = 20, page = 1, order = 'desc') {
|
|
38
|
+
const entities = await this.model.find(filters).skip(limit * (page - 1)).limit(limit).populate(populate).sort({ createdAt: order });
|
|
39
|
+
return entities;
|
|
40
|
+
}
|
|
41
|
+
async update(id, entity) {
|
|
42
|
+
const updatedEntity = await this.model.findByIdAndUpdate(id, entity, { new: true });
|
|
43
|
+
return updatedEntity;
|
|
44
|
+
}
|
|
45
|
+
async delete(id) {
|
|
46
|
+
const deletedEntity = await this.model.findByIdAndDelete(id);
|
|
47
|
+
return deletedEntity;
|
|
48
|
+
}
|
|
49
|
+
async deleteMany(filters) {
|
|
50
|
+
await this.model.deleteMany(filters);
|
|
51
|
+
console.log(`Entities deleted: ${filters}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.default = GenericRepository;
|
|
55
|
+
//# sourceMappingURL=generic.repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic.repository.js","sourceRoot":"","sources":["../../src/repositories/generic.repository.ts"],"names":[],"mappings":";;AAIA,MAAqB,iBAAiB;IAElC,YAAmC,KAAe;QAAf,UAAK,GAAL,KAAK,CAAU;IAAE,CAAC;IAE9C,KAAK,CAAC,MAAM,CAAC,IAAgB;QAChC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC/C,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;QAEtB,OAAO,CAAC,GAAG,CAAC,mBAAmB,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAEpD,OAAO,SAAS,CAAA;IACpB,CAAC;IAGM,KAAK,CAAC,GAAG,CAAC,OAAuB,EAAE,WAAqB,EAAE;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAEnE,OAAO,MAAM,CAAA;IACjB,CAAC;IAGM,KAAK,CAAC,SAAS,CAAC,QAAyB;QAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAE3D,OAAO,MAAM,CAAC;IAClB,CAAC;IAGM,KAAK,CAAC,MAAM,CAAC,OAAuB;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;IAChC,CAAC;IAGM,KAAK,CAAC,KAAK,CAAC,OAAuB;QACtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAEvD,OAAO,KAAK,CAAA;IAChB,CAAC;IAGM,KAAK,CAAC,MAAM,CAAC,OAAuB,EAAE,WAAqB,EAAE;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEnE,OAAO,QAAQ,CAAA;IACnB,CAAC;IAGM,KAAK,CAAC,qBAAqB,CAAC,OAAuB,EAAE,QAAiB,EAAE,WAAqB,EAAE;QAClG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC;QAEpF,OAAO,QAAe,CAAC;IAC3B,CAAC;IAGM,KAAK,CAAC,QAAQ,CAAC,OAAuB,EAAE,WAAqB,EAAE,EAAE,QAAgB,EAAE,EAAE,OAAa,CAAC,EAAE,QAAwB,MAAM;QACtI,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;QAElI,OAAO,QAAQ,CAAA;IACnB,CAAC;IAGM,KAAK,CAAC,MAAM,CAAC,EAAkB,EAAE,MAAsB;QAC1D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAC,GAAG,EAAE,IAAI,EAAC,CAAC,CAAA;QAEjF,OAAO,aAAa,CAAA;IACxB,CAAC;IAGM,KAAK,CAAC,MAAM,CAAC,EAAkB;QAClC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;QAE5D,OAAO,aAAa,CAAA;IACxB,CAAC;IAGM,KAAK,CAAC,UAAU,CAAC,OAAuB;QAC3C,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;CAEJ;AAjFD,oCAiFC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/types/pool.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAChB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,UAAU,gBAAgB;CAC7B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PoolType = void 0;
|
|
4
|
+
var PoolType;
|
|
5
|
+
(function (PoolType) {
|
|
6
|
+
PoolType["Weekly"] = "weekly";
|
|
7
|
+
PoolType["Seasonal"] = "seasonal";
|
|
8
|
+
PoolType["BiSeasonal"] = "bi-seasonal";
|
|
9
|
+
})(PoolType || (exports.PoolType = PoolType = {}));
|
|
10
|
+
//# sourceMappingURL=pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../src/types/pool.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,sCAA0B,CAAA;AAC9B,CAAC,EAJW,QAAQ,wBAAR,QAAQ,QAInB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare enum TransactionType {
|
|
2
|
+
Debit = "debit",
|
|
3
|
+
Credit = "credit"
|
|
4
|
+
}
|
|
5
|
+
export declare enum TransactionMethod {
|
|
6
|
+
Card = "card",
|
|
7
|
+
Wallet = "wallet",
|
|
8
|
+
BankTransfer = "bank-transfer",
|
|
9
|
+
Crypto = "crypto"
|
|
10
|
+
}
|
|
11
|
+
export declare enum TransactionStatus {
|
|
12
|
+
Pending = "pending",
|
|
13
|
+
Completed = "completed",
|
|
14
|
+
Failed = "failed"
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=wallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/types/wallet.ts"],"names":[],"mappings":"AAAA,oBAAY,eAAe;IACvB,KAAK,UAAU;IACf,MAAM,WAAW;CACpB;AAGD,oBAAY,iBAAiB;IACzB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,YAAY,kBAAkB;IAC9B,MAAM,WAAW;CACpB;AAGD,oBAAY,iBAAiB;IACzB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,MAAM,WAAW;CACpB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TransactionStatus = exports.TransactionMethod = exports.TransactionType = void 0;
|
|
4
|
+
var TransactionType;
|
|
5
|
+
(function (TransactionType) {
|
|
6
|
+
TransactionType["Debit"] = "debit";
|
|
7
|
+
TransactionType["Credit"] = "credit";
|
|
8
|
+
})(TransactionType || (exports.TransactionType = TransactionType = {}));
|
|
9
|
+
var TransactionMethod;
|
|
10
|
+
(function (TransactionMethod) {
|
|
11
|
+
TransactionMethod["Card"] = "card";
|
|
12
|
+
TransactionMethod["Wallet"] = "wallet";
|
|
13
|
+
TransactionMethod["BankTransfer"] = "bank-transfer";
|
|
14
|
+
TransactionMethod["Crypto"] = "crypto";
|
|
15
|
+
})(TransactionMethod || (exports.TransactionMethod = TransactionMethod = {}));
|
|
16
|
+
var TransactionStatus;
|
|
17
|
+
(function (TransactionStatus) {
|
|
18
|
+
TransactionStatus["Pending"] = "pending";
|
|
19
|
+
TransactionStatus["Completed"] = "completed";
|
|
20
|
+
TransactionStatus["Failed"] = "failed";
|
|
21
|
+
})(TransactionStatus || (exports.TransactionStatus = TransactionStatus = {}));
|
|
22
|
+
//# sourceMappingURL=wallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/types/wallet.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAGX;AAHD,WAAY,eAAe;IACvB,kCAAe,CAAA;IACf,oCAAiB,CAAA;AACrB,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B;AAGD,IAAY,iBAKX;AALD,WAAY,iBAAiB;IACzB,kCAAa,CAAA;IACb,sCAAiB,CAAA;IACjB,mDAA8B,CAAA;IAC9B,sCAAiB,CAAA;AACrB,CAAC,EALW,iBAAiB,iCAAjB,iBAAiB,QAK5B;AAGD,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,wCAAmB,CAAA;IACnB,4CAAuB,CAAA;IACvB,sCAAiB,CAAA;AACrB,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fplpool/fpl-models",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"main": "index.js",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"types": "dist/index.d.ts",
|
|
6
|
+
"files": [
|
|
7
|
+
"dist"
|
|
8
|
+
],
|
|
5
9
|
"scripts": {
|
|
10
|
+
"build": "tsc",
|
|
11
|
+
"prepublishOnly": "npm run build",
|
|
6
12
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
13
|
},
|
|
8
14
|
"keywords": [],
|
|
@@ -11,9 +17,10 @@
|
|
|
11
17
|
"description": "Shared application models",
|
|
12
18
|
"dependencies": {
|
|
13
19
|
"dotenv": "^17.3.1",
|
|
14
|
-
"mongoose": "^9.3.0"
|
|
20
|
+
"mongoose": "^9.3.0",
|
|
21
|
+
"sperse-id": "^1.2.0"
|
|
15
22
|
},
|
|
16
|
-
"publishConfig": {
|
|
23
|
+
"publishConfig": {
|
|
17
24
|
"access": "public"
|
|
18
25
|
},
|
|
19
26
|
"devDependencies": {
|
package/src/index.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export * from "./models/user.model";
|
|
2
|
-
export * from "./models/user-settings.model";
|
|
3
|
-
export * from "./models/session.model";
|
|
4
|
-
export * from "./models/wallet.model";
|
|
5
|
-
export * from "./models/card.model";
|
|
6
|
-
export * from "./models/transaction.model";
|
|
7
|
-
export * from "./models/pool.model";
|
|
8
|
-
export * from "./models/pool-gameweek-deadline.model";
|
|
9
|
-
export * from "./models/pool-member.model";
|
|
10
|
-
export * from "./models/pool-wallet.model";
|
|
11
|
-
export * from "./models/pool-gameweek.model";
|
|
12
|
-
export * from "./models/pool-gameweek-winner.model";
|
|
13
|
-
export * from "./models/pool-invite.model";
|
|
14
|
-
export * from "./models/pool-transaction.model";
|
|
15
|
-
export * from "./models/job.model";
|
|
16
|
-
export * from "./models/invoice.model";
|
|
17
|
-
export * from "./models/config.model";
|
|
18
|
-
|
|
19
|
-
export * from "./repositories/generic.repository";
|