goldstars-services 1.0.1

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.
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.QUERY_USER_SELECT = exports.QUERY_USER_PAY_METHOD = exports.QUERY_USER_NOTIFICATIONS_SETTINGS = exports.QUERY_USER_EXIST_SELECT_EXTRA = exports.QUERY_USER_EXIST_SELECT = exports.QUERY_TRAINERS_FOR_CLIENT_SELECT = exports.QUERY_SESSION_USER_SELECT = exports.QUERY_POST_SELECT = exports.QUERY_POST_ID = exports.QUERY_GET_USER_PAYMENT_METHODS = exports.QUERY_GET_USER_PAYMENTS = exports.QUERY_GET_USER = exports.QUERY_GET_SESSIONS = exports.CHAT_USER_INFO_SELECT = void 0;
7
+ var QUERY_USER_EXIST_SELECT = exports.QUERY_USER_EXIST_SELECT = {
8
+ _id: 1
9
+ };
10
+ var QUERY_USER_EXIST_SELECT_EXTRA = exports.QUERY_USER_EXIST_SELECT_EXTRA = {
11
+ _id: 1,
12
+ voxImplant: 1,
13
+ firstName: 1,
14
+ lastName: 1
15
+ };
16
+ var QUERY_USER_SELECT = exports.QUERY_USER_SELECT = {
17
+ _id: 1,
18
+ firstName: 1,
19
+ lastName: 1,
20
+ phone: 1,
21
+ avatar: 1,
22
+ sessions: 1,
23
+ isDoctor: 1,
24
+ external_id: 1,
25
+ loginType: 1,
26
+ country: 1,
27
+ email: 1,
28
+ bio: 1,
29
+ birthDate: 1,
30
+ pacientNotes: 1,
31
+ pacientStatus: 1,
32
+ voxImplant: 1,
33
+ confirmPhone: 1,
34
+ courtesysession: 1,
35
+ tokenFCM: 1,
36
+ chatPorLeer: 1
37
+ };
38
+ var QUERY_TRAINERS_FOR_CLIENT_SELECT = exports.QUERY_TRAINERS_FOR_CLIENT_SELECT = {
39
+ _id: 1,
40
+ country: 1,
41
+ firstName: 1,
42
+ lastName: 1,
43
+ external_id: 1,
44
+ loginType: 1,
45
+ phone: 1,
46
+ avatar: 1,
47
+ birthDate: 1,
48
+ isDoctor: 1,
49
+ sessions: 1,
50
+ tokenFCM: 1,
51
+ rejected: 1
52
+ };
53
+ var CHAT_USER_INFO_SELECT = exports.CHAT_USER_INFO_SELECT = {
54
+ firstName: 1,
55
+ lastName: 1,
56
+ avatar: 1
57
+ };
58
+ var QUERY_POST_ID = exports.QUERY_POST_ID = {
59
+ _id: 1,
60
+ createdBy: 1
61
+ };
62
+ var QUERY_POST_SELECT = exports.QUERY_POST_SELECT = {
63
+ _id: 1,
64
+ header: 1,
65
+ title: 1,
66
+ content: 1,
67
+ active: 1,
68
+ likes: 1,
69
+ createdBy: 1,
70
+ modifiedDate: 1,
71
+ comments: 1
72
+ };
73
+ var QUERY_USER_PAY_METHOD = exports.QUERY_USER_PAY_METHOD = {
74
+ type: 1,
75
+ method: 1,
76
+ user: 1,
77
+ relatedSessions: 1,
78
+ idNumber: 1,
79
+ fullName: 1,
80
+ transactionRef: 1,
81
+ bank: 1,
82
+ imageRef: 1,
83
+ status: 1,
84
+ amount: 1,
85
+ creationDate: 1
86
+ };
87
+ var QUERY_GET_USER = exports.QUERY_GET_USER = {
88
+ firstName: 1,
89
+ lastName: 1,
90
+ avatar: 1,
91
+ paymentMethods: 1,
92
+ voxImplant: 1,
93
+ _id: 1,
94
+ external_id: 1,
95
+ loginType: 1,
96
+ tokenFCM: 1
97
+ };
98
+ var QUERY_GET_USER_PAYMENTS = exports.QUERY_GET_USER_PAYMENTS = {
99
+ method: 1,
100
+ fullName: 1,
101
+ idNumber: 1,
102
+ account: 1,
103
+ email: 1,
104
+ favorite: 1
105
+ };
106
+ var QUERY_GET_USER_PAYMENT_METHODS = exports.QUERY_GET_USER_PAYMENT_METHODS = {
107
+ paymentMethods: 1,
108
+ _id: 1
109
+ };
110
+ var QUERY_GET_SESSIONS = exports.QUERY_GET_SESSIONS = {
111
+ _id: 1,
112
+ firstName: 1,
113
+ lastName: 1,
114
+ avatar: 1,
115
+ tokenFCM: 1,
116
+ pacientStatus: 1,
117
+ phone: 1,
118
+ external_id: 1,
119
+ avatar: 1
120
+ };
121
+ var QUERY_SESSION_USER_SELECT = exports.QUERY_SESSION_USER_SELECT = {
122
+ _id: 1,
123
+ email: 1,
124
+ firstName: 1,
125
+ lastName: 1
126
+ };
127
+ var QUERY_USER_NOTIFICATIONS_SETTINGS = exports.QUERY_USER_NOTIFICATIONS_SETTINGS = {
128
+ _id: 1,
129
+ notificationsSettings: 1,
130
+ tokenFCM: 1
131
+ };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _mongoose = _interopRequireDefault(require("mongoose"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ var iniciarDb = function iniciarDb(MONGO_URI) {
10
+ var Logger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : () => {};
11
+ return new Promise((resolve, reject) => {
12
+ // Base de Datos
13
+ _mongoose.default.connect(MONGO_URI, {
14
+ useNewUrlParser: true,
15
+ useUnifiedTopology: true,
16
+ useCreateIndex: true,
17
+ useFindAndModify: false
18
+ });
19
+ var db = _mongoose.default.connection;
20
+ // Eventos de DB
21
+ db.once("open", () => {
22
+ Logger.info("Conexion creada a la DB");
23
+ resolve(db);
24
+ });
25
+ db.on("error", () => {
26
+ console.error.bind(console, "connection error:");
27
+ reject("Error conectando a la DB");
28
+ });
29
+ });
30
+ };
31
+ var _default = exports.default = iniciarDb;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _mongoose = _interopRequireDefault(require("mongoose"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
12
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
13
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
14
+ var {
15
+ Schema
16
+ } = _mongoose.default;
17
+ var bankAccounts = {
18
+ method: {
19
+ type: String,
20
+ enum: ["zelle", "transferencia", "pagoMovil"]
21
+ },
22
+ bank: {
23
+ type: String,
24
+ required: false
25
+ },
26
+ account: {
27
+ name: {
28
+ type: String,
29
+ required: true
30
+ },
31
+ id: {
32
+ type: String,
33
+ required: false
34
+ },
35
+ email: {
36
+ type: String,
37
+ required: false
38
+ },
39
+ phone: {
40
+ type: String,
41
+ required: false
42
+ },
43
+ number: {
44
+ type: String,
45
+ required: false
46
+ },
47
+ currency: {
48
+ type: String,
49
+ required: true,
50
+ enum: ["USD", "BS"],
51
+ default: "BS"
52
+ }
53
+ },
54
+ active: {
55
+ type: Boolean,
56
+ required: false,
57
+ default: true
58
+ }
59
+ };
60
+ var configSchema = Schema({
61
+ dolarPrice: {
62
+ pacient: {
63
+ type: Number,
64
+ required: false
65
+ },
66
+ doctor: {
67
+ type: Number,
68
+ required: false
69
+ }
70
+ },
71
+ sessionValue: {
72
+ type: Number,
73
+ required: false
74
+ },
75
+ banks: [_objectSpread({}, bankAccounts)],
76
+ paypal: {
77
+ type: Boolean,
78
+ default: false
79
+ }
80
+ });
81
+ var config = _mongoose.default.model("Config", configSchema);
82
+ var _default = exports.default = config;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _mongoose = _interopRequireDefault(require("mongoose"));
8
+ var _encrypt = require("../utils/encrypt");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
11
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
12
+ var {
13
+ Schema
14
+ } = _mongoose.default;
15
+ var UserSchema = Schema({
16
+ email: {
17
+ type: String,
18
+ required: true,
19
+ unique: true
20
+ },
21
+ password: {
22
+ type: String
23
+ },
24
+ firstName: {
25
+ type: String,
26
+ required: true
27
+ },
28
+ lastName: {
29
+ type: String,
30
+ required: true
31
+ },
32
+ phone: {
33
+ type: String,
34
+ default: ""
35
+ },
36
+ firstLogin: {
37
+ type: Boolean,
38
+ default: true
39
+ },
40
+ isTrainer: {
41
+ type: Object,
42
+ default: null
43
+ },
44
+ trainer: {
45
+ type: Schema.Types.ObjectId,
46
+ ref: "User",
47
+ default: null
48
+ },
49
+ subscription: {
50
+ type: String
51
+ },
52
+ rejected: {
53
+ type: Boolean,
54
+ default: false
55
+ },
56
+ isAdmin: {
57
+ type: {
58
+ active: Boolean,
59
+ adminType: {
60
+ type: String,
61
+ enum: ["support", "billing", "owner"]
62
+ }
63
+ },
64
+ default: null
65
+ },
66
+ signUpDate: {
67
+ type: Date,
68
+ default: Date.now
69
+ }
70
+ });
71
+ UserSchema.pre("save", /*#__PURE__*/function () {
72
+ var _ref = _asyncToGenerator(function* (next) {
73
+ this.password = yield (0, _encrypt.encrypt)(this.password);
74
+ next();
75
+ });
76
+ return function (_x) {
77
+ return _ref.apply(this, arguments);
78
+ };
79
+ }());
80
+ UserSchema.pre("findOneAndUpdate", /*#__PURE__*/function () {
81
+ var _ref2 = _asyncToGenerator(function* (next) {
82
+ var update = this.getUpdate();
83
+ if (update.password) {
84
+ update.password = yield (0, _encrypt.encrypt)(update.password);
85
+ }
86
+ next();
87
+ });
88
+ return function (_x2) {
89
+ return _ref2.apply(this, arguments);
90
+ };
91
+ }());
92
+ UserSchema.methods.isValidPassword = /*#__PURE__*/function () {
93
+ var _ref3 = _asyncToGenerator(function* (password) {
94
+ return yield (0, _encrypt.match)(password, this.password);
95
+ });
96
+ return function (_x3) {
97
+ return _ref3.apply(this, arguments);
98
+ };
99
+ }();
100
+ var User = _mongoose.default.model("User", UserSchema);
101
+ var _default = exports.default = User;
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _config = _interopRequireDefault(require("../models/config.model"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
10
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
11
+ /**
12
+ * @description Get app config by query params
13
+ * @param {Object} transactionParams
14
+ * @param {Boolean} populate
15
+ * @returns
16
+ */
17
+ var getAppConfig = () => {
18
+ return _config.default.findOne({});
19
+ };
20
+
21
+ /**
22
+ * @description Creates a new app config
23
+ * @param {Object} params
24
+ * @returns Promise<AxiosResponse<appConfigModel>>
25
+ */
26
+
27
+ var createAppConfig = params => {
28
+ var newConfig = new _config.default(params);
29
+ return newConfig.save();
30
+ };
31
+
32
+ /**
33
+ * @description Update app config
34
+ * @param {Object} params
35
+ * @returns Promise<AxiosResponse<appConfigModel>>
36
+ */
37
+
38
+ var updateAppConfig = (queryParams, paramsToUpdate) => {
39
+ var mongooseOptions = {
40
+ useFindAndModify: false
41
+ };
42
+ var updateOperation = _config.default.findOneAndUpdate(queryParams, paramsToUpdate, mongooseOptions);
43
+ return updateOperation;
44
+ };
45
+
46
+ /**
47
+ * @description Creates a new bank account
48
+ * @param {Object} accountData
49
+ * @returns {Promise<Object>}
50
+ */
51
+ var createBankAccount = /*#__PURE__*/function () {
52
+ var _ref = _asyncToGenerator(function* (accountData) {
53
+ try {
54
+ var result = yield _config.default.updateOne({}, {
55
+ $push: {
56
+ banks: accountData
57
+ }
58
+ });
59
+ return result;
60
+ } catch (error) {
61
+ console.error(error);
62
+ }
63
+ });
64
+ return function createBankAccount(_x) {
65
+ return _ref.apply(this, arguments);
66
+ };
67
+ }();
68
+
69
+ /**
70
+ * @description Deletes a bank account by id
71
+ * @param {String} id
72
+ * @returns {Promise<Object>}
73
+ */
74
+ var deleteBankAccount = /*#__PURE__*/function () {
75
+ var _ref2 = _asyncToGenerator(function* (id) {
76
+ try {
77
+ var result = yield _config.default.updateOne({}, {
78
+ $pull: {
79
+ banks: {
80
+ _id: id
81
+ }
82
+ }
83
+ });
84
+ return result;
85
+ } catch (error) {
86
+ console.error(error);
87
+ }
88
+ });
89
+ return function deleteBankAccount(_x2) {
90
+ return _ref2.apply(this, arguments);
91
+ };
92
+ }();
93
+
94
+ /**
95
+ * @description Updates a bank account by id
96
+ * @param {String} id
97
+ * @param {Object} accountData
98
+ * @returns {Promise<Object>}
99
+ */
100
+
101
+ var updateBankAccount = /*#__PURE__*/function () {
102
+ var _ref3 = _asyncToGenerator(function* (id, accountData) {
103
+ try {
104
+ var result = yield _config.default.updateOne({
105
+ "banks._id": id
106
+ }, {
107
+ $set: {
108
+ "banks.$": accountData
109
+ }
110
+ });
111
+ return result;
112
+ } catch (error) {
113
+ console.error(error);
114
+ }
115
+ });
116
+ return function updateBankAccount(_x3, _x4) {
117
+ return _ref3.apply(this, arguments);
118
+ };
119
+ }();
120
+
121
+ /**
122
+ * @description Cambia el estado activo de un banco
123
+ * @param {String} bankId - ID del banco que se desea actualizar
124
+ * @param {Boolean} newStatus - Nuevo estado activo del banco (true/false)
125
+ * @returns {Promise<Object>}
126
+ */
127
+
128
+ var changeBankStatus = /*#__PURE__*/function () {
129
+ var _ref4 = _asyncToGenerator(function* (bankId, newStatus) {
130
+ try {
131
+ // Primero, encuentra el documento que contiene el banco con el ID dado
132
+ var config = yield _config.default.findOne({
133
+ "banks._id": bankId
134
+ });
135
+
136
+ // Luego, encuentra el índice del banco en el array
137
+ var bankIndex = config.banks.findIndex(bank => bank._id.toString() === bankId);
138
+
139
+ // Ahora, construye la ruta del campo que quieres actualizar
140
+ var updatePath = "banks.".concat(bankIndex, ".active");
141
+
142
+ // Finalmente, realiza la actualización
143
+ var result = yield _config.default.updateOne({
144
+ _id: config._id
145
+ }, {
146
+ $set: {
147
+ [updatePath]: newStatus
148
+ }
149
+ });
150
+ return result;
151
+ } catch (error) {
152
+ console.error(error);
153
+ throw error;
154
+ }
155
+ });
156
+ return function changeBankStatus(_x5, _x6) {
157
+ return _ref4.apply(this, arguments);
158
+ };
159
+ }();
160
+ var _default = exports.default = {
161
+ getAppConfig,
162
+ createAppConfig,
163
+ updateAppConfig,
164
+ createBankAccount,
165
+ deleteBankAccount,
166
+ updateBankAccount,
167
+ changeBankStatus
168
+ };
@@ -0,0 +1,247 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _user = _interopRequireDefault(require("../models/user.model"));
8
+ var _queries = require("../config/queries");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
11
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
12
+ /**
13
+ * @description Populates the query with the user data
14
+ * @param {UserModel} query query to populate
15
+ * @returns
16
+ */
17
+ var populateQueryUserData = userQuery => {
18
+ return populateClientOfTrainer(userQuery.populate({
19
+ path: "isDoctor.clientes",
20
+ model: "User",
21
+ select: _queries.QUERY_USER_SELECT
22
+ }));
23
+ };
24
+
25
+ /**
26
+ * @description Creates an user and returns it
27
+ * @param {Object} params params for creating the user
28
+ * @param {*} isTrainer if the user is a doctor
29
+ * @returns {Promise<UserModel>}
30
+ */
31
+ var createUser = (params, isTrainer) => {
32
+ var userBody = params;
33
+ if (isTrainer) {
34
+ userBody["isTrainer"] = {
35
+ confirmed: false
36
+ };
37
+ }
38
+ var User = new _user.default(userBody);
39
+ return User.save();
40
+ };
41
+
42
+ /**
43
+ * @description Returns a user by dynamic parameters
44
+ * @param {Object} queryParams
45
+ * @param {Boolean} populate
46
+ * @returns Promise<UserModel | null>
47
+ */
48
+ var getUser = /*#__PURE__*/function () {
49
+ var _ref = _asyncToGenerator(function* (queryParams) {
50
+ var populate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
51
+ var dataToSelect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
52
+ var query = _user.default.findOne(queryParams, dataToSelect);
53
+ if (populate) {
54
+ var user = yield populateQueryUserData(query);
55
+
56
+ // Devolver null si el usuario no se encuentra
57
+ if (!user) {
58
+ return null;
59
+ }
60
+ return user;
61
+ }
62
+ return query;
63
+ });
64
+ return function getUser(_x) {
65
+ return _ref.apply(this, arguments);
66
+ };
67
+ }();
68
+
69
+ /**
70
+ * @description Updates a user
71
+ * @param {string} queryParams
72
+ * @param {Object} paramsToUpdate
73
+ * @param {Boolean} populate
74
+ * @param {Boolean} isNew
75
+ * @returns Promise<AxiosResponse<UserModel>>
76
+ */
77
+ var updateUser = function updateUser(queryParams, paramsToUpdate) {
78
+ var populate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
79
+ var isNew = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
80
+ var mongooseOptions = {
81
+ useFindAndModify: false
82
+ };
83
+ if (isNew) mongooseOptions["new"] = true;
84
+ var updateOperation = _user.default.findOneAndUpdate(queryParams, paramsToUpdate, mongooseOptions);
85
+ return populate ? populateQueryUserData(updateOperation) : updateOperation;
86
+ };
87
+
88
+ /**
89
+ * @description Get List of Doctors to Pacients, so pacient can choose a doctor an subscribe
90
+ * @returns {Promise<UserModel>}
91
+ */
92
+
93
+ var getTrainersForClients = () => {
94
+ return _user.default.find({
95
+ isDoctor: {
96
+ $exists: true,
97
+ $ne: null
98
+ }
99
+ }, _queries.QUERY_TRAINERS_FOR_CLIENT_SELECT);
100
+ };
101
+
102
+ /**
103
+ * @description Get List of Doctors for Pacients to choose from and subscribe
104
+ * @returns {Promise<UserModel>}
105
+ */
106
+ var getTrainersForClientsWithConfirmation = () => {
107
+ return _user.default.find({
108
+ "isTrainer.confirmed": true
109
+ }, _queries.QUERY_TRAINERS_FOR_CLIENT_SELECT);
110
+ };
111
+
112
+ /**
113
+ * @description Checks if the user exists
114
+ * @param {Object} queryParams
115
+ * @param {Boolean} returnUser set true if the user should be returned
116
+ * @returns {Boolean}
117
+ */
118
+ var checkIfUserExist = /*#__PURE__*/function () {
119
+ var _ref2 = _asyncToGenerator(function* (queryParams) {
120
+ var returnUser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
121
+ var result = yield _user.default.findOne(queryParams, returnUser ? _queries.QUERY_USER_EXIST_SELECT_EXTRA : _queries.QUERY_USER_EXIST_SELECT);
122
+ return returnUser ? result || false : !!result;
123
+ });
124
+ return function checkIfUserExist(_x2) {
125
+ return _ref2.apply(this, arguments);
126
+ };
127
+ }();
128
+
129
+ /**
130
+ * @description Checks if the user is Doctor
131
+ * @param {Object} queryParams
132
+ * @param {*} isDoctor if the user is a doctor
133
+ * @returns {Boolean}
134
+ */
135
+ var checkIfUserIsTrainer = /*#__PURE__*/function () {
136
+ var _ref4 = _asyncToGenerator(function* (_ref3) {
137
+ var {
138
+ _id
139
+ } = _ref3;
140
+ var result = yield _user.default.findOne({
141
+ _id,
142
+ isTrainer: {
143
+ $exists: true,
144
+ $ne: null
145
+ }
146
+ }, _queries.QUERY_USER_EXIST_SELECT);
147
+ return !!result;
148
+ });
149
+ return function checkIfUserIsTrainer(_x3) {
150
+ return _ref4.apply(this, arguments);
151
+ };
152
+ }();
153
+
154
+ /**
155
+ * @description Returns multiple users by dynamic parameters
156
+ * @param {Object} queryParams
157
+ * @param {Boolean} populate
158
+ * @returns Promise<UserModel>
159
+ */
160
+ var getUsers = function getUsers(queryParams) {
161
+ var populate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
162
+ var query = _user.default.find(queryParams);
163
+ return populate ? populateQueryUserData(query) : query;
164
+ };
165
+
166
+ /**
167
+ * @description Get List of active Doctors
168
+ * @returns {Promise<UserModel>}
169
+ */
170
+ var getActiveTrainer = () => {
171
+ return _user.default.find({
172
+ "isTrainer.confirmed": true
173
+ }, _queries.QUERY_TRAINERS_FOR_CLIENT_SELECT);
174
+ };
175
+
176
+ /**
177
+ * @description Unsusbscribe a pacient from a doctor
178
+ * @param {Number} clienteId
179
+ * @param {Number} entrenadorId
180
+ * @returns {Promise<UserModel[]>}
181
+ */
182
+
183
+ var unsubscribePacient = /*#__PURE__*/function () {
184
+ var _ref6 = _asyncToGenerator(function* (_ref5) {
185
+ var {
186
+ clienteId,
187
+ entrenadorId
188
+ } = _ref5;
189
+ var updatedClient = yield _user.default.findOneAndUpdate({
190
+ _id: clienteId
191
+ }, {
192
+ doctor: null
193
+ });
194
+ var updatedTrainer = yield _user.default.findOneAndUpdate({
195
+ _id: entrenadorId
196
+ }, {
197
+ $pull: {
198
+ "isTrainer.clientes": entrenadorId
199
+ }
200
+ });
201
+ if (!(updatedClient && updatedTrainer)) {
202
+ throw Error("Error updating users");
203
+ }
204
+ var trainers = yield getActiveTrainer();
205
+ return trainers;
206
+ });
207
+ return function unsubscribePacient(_x4) {
208
+ return _ref6.apply(this, arguments);
209
+ };
210
+ }();
211
+
212
+ /**
213
+ * @description Returns the user if they are an admin
214
+ * @param {String} userId
215
+ * @returns {Promise<Object>}
216
+ */
217
+ var getUserIfAdmin = /*#__PURE__*/function () {
218
+ var _ref7 = _asyncToGenerator(function* (userId) {
219
+ try {
220
+ var user = yield _user.default.findOne({
221
+ _id: userId,
222
+ isAdmin: {
223
+ $ne: null
224
+ }
225
+ });
226
+ return user ? user.isAdmin : null;
227
+ } catch (error) {
228
+ console.error(error);
229
+ }
230
+ });
231
+ return function getUserIfAdmin(_x5) {
232
+ return _ref7.apply(this, arguments);
233
+ };
234
+ }();
235
+ var _default = exports.default = {
236
+ createUser,
237
+ getUser,
238
+ getTrainersForClients,
239
+ checkIfUserExist,
240
+ updateUser,
241
+ checkIfUserIsTrainer,
242
+ getUsers,
243
+ getActiveTrainer,
244
+ unsubscribePacient,
245
+ getTrainersForClientsWithConfirmation,
246
+ getUserIfAdmin
247
+ };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.match = exports.encrypt = void 0;
7
+ var _bcrypt = _interopRequireDefault(require("bcrypt"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
10
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
11
+ var encrypt = exports.encrypt = /*#__PURE__*/function () {
12
+ var _ref = _asyncToGenerator(function* (string) {
13
+ var salt = yield _bcrypt.default.genSalt(10);
14
+ return yield _bcrypt.default.hash(string, salt);
15
+ });
16
+ return function encrypt(_x) {
17
+ return _ref.apply(this, arguments);
18
+ };
19
+ }();
20
+ var match = exports.match = /*#__PURE__*/function () {
21
+ var _ref2 = _asyncToGenerator(function* (string, encrypted) {
22
+ return yield _bcrypt.default.compare(string, encrypted);
23
+ });
24
+ return function match(_x2, _x3) {
25
+ return _ref2.apply(this, arguments);
26
+ };
27
+ }();
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "goldstars-services",
3
+ "version": "1.0.1",
4
+ "description": "This is the services layer for GoldStars",
5
+ "main": "./dist/index.js",
6
+ "scripts": {
7
+ "start": "npm run build && node ./dist/index.js",
8
+ "build": "babel src -d dist",
9
+ "dev": "nodemon --exec babel-node ./src/index.js",
10
+ "test": "echo \"Error: no test specified\" && exit 1"
11
+ },
12
+ "author": "Carlos Tribiec & Mantenance/Upgrade for Codembody",
13
+ "license": "ISC",
14
+ "devDependencies": {
15
+ "@babel/cli": "^7.21.5",
16
+ "@babel/core": "^7.21.5",
17
+ "@babel/node": "^7.16.8",
18
+ "@babel/preset-env": "^7.16.11"
19
+ },
20
+ "dependencies": {
21
+ "axios": "^0.27.0",
22
+ "bcrypt": "^5.0.1",
23
+ "mongoose": "^5.13.14",
24
+ "nodemon": "^2.0.15"
25
+ },
26
+ "files": [
27
+ "dist/*.js",
28
+ "dist/**/*.js"
29
+ ],
30
+ "repository": {
31
+ "type": "git"
32
+ },
33
+ "bugs": {
34
+ }
35
+ }