1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const tslib_1 = require("tslib");
|
4 | const common_1 = require("@nestjs/common");
|
5 | const _ = require("lodash");
|
6 | const context_1 = require("./datastore/context");
|
7 | const datastore_provider_1 = require("./datastore/datastore.provider");
|
8 | const user_service_1 = require("./auth/user.service");
|
9 | const logging_1 = require("./gcloud/logging");
|
10 | let ContextMiddleware = class ContextMiddleware {
|
11 | constructor(datastoreProvider, userService) {
|
12 | this.datastoreProvider = datastoreProvider;
|
13 | this.userService = userService;
|
14 | this.logger = logging_1.createLogger('context-middleware');
|
15 | }
|
16 | resolve(...args) {
|
17 | return async (req, res, next) => {
|
18 | this.logger.info(`[${req.method}]: ${req.originalUrl}`);
|
19 | const requestContext = context_1.newContext(this.datastoreProvider.datastore);
|
20 | const userId = _.get(req, 'session.passport.user.id');
|
21 | if (userId && !req.is('text/html')) {
|
22 | requestContext.user = await this.userService.get(requestContext, userId);
|
23 | }
|
24 | req.context = requestContext;
|
25 | if (next) {
|
26 | next();
|
27 | }
|
28 | };
|
29 | }
|
30 | };
|
31 | ContextMiddleware = tslib_1.__decorate([
|
32 | common_1.Injectable(),
|
33 | tslib_1.__param(1, common_1.Inject(user_service_1.USER_SERVICE)),
|
34 | tslib_1.__metadata("design:paramtypes", [datastore_provider_1.DatastoreProvider, Object])
|
35 | ], ContextMiddleware);
|
36 | exports.ContextMiddleware = ContextMiddleware;
|
37 |
|
\ | No newline at end of file |