UNPKG

10.1 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports["default"] = void 0;
9
10var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
12var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
14var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
16var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
18var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
20var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
22var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
24var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
26var _err = _interopRequireDefault(require("@lskjs/err"));
27
28var _AuthApi = _interopRequireDefault(require("./AuthApi"));
29
30function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
31
32function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
33
34var Api = /*#__PURE__*/function (_BaseApi) {
35 (0, _inherits2["default"])(Api, _BaseApi);
36
37 var _super = _createSuper(Api);
38
39 function Api() {
40 (0, _classCallCheck2["default"])(this, Api);
41 return _super.apply(this, arguments);
42 }
43
44 (0, _createClass2["default"])(Api, [{
45 key: "getOperation",
46 value: function () {
47 var _getOperation = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
48 var _ref,
49 req,
50 provider,
51 params,
52 me,
53 UserModel,
54 user,
55 operation,
56 _args = arguments;
57
58 return _regenerator["default"].wrap(function _callee$(_context) {
59 while (1) {
60 switch (_context.prev = _context.next) {
61 case 0:
62 _ref = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, req = _ref.req, provider = _ref.provider, params = _ref.params;
63 me = req.user;
64 UserModel = this.app.models.UserModel;
65
66 if (!params) {
67 _context.next = 7;
68 break;
69 }
70
71 _context.next = 6;
72 return UserModel.findOne(params);
73
74 case 6:
75 user = _context.sent;
76
77 case 7:
78 if (!(me && me._id)) {
79 _context.next = 26;
80 break;
81 }
82
83 _context.next = 10;
84 return UserModel.findById(me._id);
85
86 case 10:
87 me = _context.sent;
88
89 if (!user) {
90 _context.next = 23;
91 break;
92 }
93
94 if (!(provider === 'email')) {
95 _context.next = 16;
96 break;
97 }
98
99 throw new _err["default"]('EMAIL_HAS_BEEN_ATTACHED');
100
101 case 16:
102 if (!(provider === 'phone')) {
103 _context.next = 20;
104 break;
105 }
106
107 throw new _err["default"]('PHONE_HAS_BEEN_ATTACHED');
108
109 case 20:
110 throw new _err["default"]('PROVIDER_HAS_BEEN_ATTACHED');
111
112 case 21:
113 _context.next = 24;
114 break;
115
116 case 23:
117 operation = 'attach';
118
119 case 24:
120 _context.next = 28;
121 break;
122
123 case 26:
124 me = null;
125
126 if (user) {
127 operation = 'login';
128 } else {
129 operation = 'signup';
130 }
131
132 case 28:
133 return _context.abrupt("return", operation);
134
135 case 29:
136 case "end":
137 return _context.stop();
138 }
139 }
140 }, _callee, this);
141 }));
142
143 function getOperation() {
144 return _getOperation.apply(this, arguments);
145 }
146
147 return getOperation;
148 }()
149 }, {
150 key: "permitAction",
151 value: function () {
152 var _permitAction = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(_ref2) {
153 var req, permit, UserModel, provider, params, operation, user, user2, token;
154 return _regenerator["default"].wrap(function _callee2$(_context2) {
155 while (1) {
156 switch (_context2.prev = _context2.next) {
157 case 0:
158 req = _ref2.req, permit = _ref2.permit;
159 UserModel = this.app.models.UserModel;
160 provider = permit.info.provider;
161
162 if (provider) {
163 _context2.next = 5;
164 break;
165 }
166
167 throw new _err["default"]('!provider');
168
169 case 5:
170 if (permit.info[provider]) {
171 _context2.next = 7;
172 break;
173 }
174
175 throw new _err["default"]('!permit.info[provider]');
176
177 case 7:
178 params = (0, _defineProperty2["default"])({}, provider, permit.info[provider]);
179 _context2.next = 10;
180 return this.getOperation(req, {
181 permit: permit,
182 provider: provider,
183 params: params
184 });
185
186 case 10:
187 operation = _context2.sent;
188
189 if (!(operation === 'signup')) {
190 _context2.next = 17;
191 break;
192 }
193
194 user = new UserModel(params);
195 user.editedAt = new Date();
196 user.signinAt = new Date();
197 _context2.next = 44;
198 break;
199
200 case 17:
201 if (!(operation === 'login')) {
202 _context2.next = 26;
203 break;
204 }
205
206 _context2.next = 20;
207 return UserModel.findOne(params).sort({
208 createdAt: 1
209 });
210
211 case 20:
212 user = _context2.sent;
213
214 if (user) {
215 _context2.next = 23;
216 break;
217 }
218
219 throw new _err["default"]('!user');
220
221 case 23:
222 user.signinAt = new Date();
223 _context2.next = 44;
224 break;
225
226 case 26:
227 if (!(operation === 'attach')) {
228 _context2.next = 43;
229 break;
230 }
231
232 if (req.user) {
233 _context2.next = 29;
234 break;
235 }
236
237 throw new _err["default"]('!user');
238
239 case 29:
240 _context2.next = 31;
241 return UserModel.findById(req.user._id);
242
243 case 31:
244 user = _context2.sent;
245
246 if (user) {
247 _context2.next = 34;
248 break;
249 }
250
251 throw new _err["default"]('!user');
252
253 case 34:
254 user[provider] = permit.info[provider];
255 user.editedAt = new Date();
256 _context2.next = 38;
257 return UserModel.findOne(params);
258
259 case 38:
260 user2 = _context2.sent;
261
262 if (!user2) {
263 _context2.next = 41;
264 break;
265 }
266
267 throw new _err["default"]('HAS_BEEN_ATTACHED');
268
269 case 41:
270 _context2.next = 44;
271 break;
272
273 case 43:
274 throw new _err["default"]('!operation');
275
276 case 44:
277 _context2.next = 46;
278 return permit.activate();
279
280 case 46:
281 _context2.next = 48;
282 return user.save();
283
284 case 48:
285 token = user.generateAuthToken(); // console.log(`auth/confirm ${user._id} ${token}`); // this.app.logger
286
287 _context2.t0 = operation === 'signup';
288 _context2.t1 = operation;
289 _context2.t2 = token;
290 _context2.next = 54;
291 return user.getStatus();
292
293 case 54:
294 _context2.t3 = _context2.sent;
295 _context2.next = 57;
296 return UserModel.prepare(user, {
297 req: req,
298 view: 'extended'
299 });
300
301 case 57:
302 _context2.t4 = _context2.sent;
303 return _context2.abrupt("return", {
304 isNew: _context2.t0,
305 operation: _context2.t1,
306 token: _context2.t2,
307 status: _context2.t3,
308 user: _context2.t4
309 });
310
311 case 59:
312 case "end":
313 return _context2.stop();
314 }
315 }
316 }, _callee2, this);
317 }));
318
319 function permitAction(_x) {
320 return _permitAction.apply(this, arguments);
321 }
322
323 return permitAction;
324 }()
325 }]);
326 return Api;
327}(_AuthApi["default"]);
328
329exports["default"] = Api;
330//# sourceMappingURL=AuthMobileApi.js.map
\No newline at end of file