UNPKG

1.59 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const tslib_1 = require("tslib");
4const common_1 = require("@nestjs/common");
5const _ = require("lodash");
6const context_1 = require("./datastore/context");
7const datastore_provider_1 = require("./datastore/datastore.provider");
8const user_service_1 = require("./auth/user.service");
9const logging_1 = require("./gcloud/logging");
10let 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};
31ContextMiddleware = 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);
36exports.ContextMiddleware = ContextMiddleware;
37//# sourceMappingURL=interceptor.js.map
\No newline at end of file