import {Logging, Middleware, Session} from "@extollo/lib" import {Inject, Injectable} from "@extollo/di" import {User} from "../../../models/User.model"; /** * InjectUser Middleware * -------------------------------------------- * Put some description here. */ @Injectable() export class InjectUser extends Middleware { @Inject() protected readonly session!: Session @Inject() protected readonly logging!: Logging public async apply() { const userId = this.session.get('auth.user_id') if ( userId && !this.request.hasKey(User) ) { const user = await User.findByKey(userId) this.logging.debug(`Looked up user ID ${userId} from session. Found? ${!!user}`) if ( user ) { this.request.registerSingletonInstance(User, user) } } else { this.logging.verbose(`No user ID defined in session.`) } } }