'use strict' /** @typedef {import('@adonisjs/framework/src/Request')} Request */ /** @typedef {import('@adonisjs/framework/src/Response')} Response */ /** @typedef {import('@adonisjs/framework/src/View')} View */ const Book = use('App/Models/Book'); const UserChildUtils = use('App/Utils/UserChildUtils'); class BookPageAuth { /** * @param {object} ctx * @param {Request} ctx.request * @param {Function} next */ async handle(ctx, next) { const {request, auth, response} = ctx; // call next to advance the request const user = auth.user; const bookId = request.params.bookId; const book = await Book.find(bookId); if (!book) { response.status(404); response.send({code: 404, message: 'Book not found'}); return; } ctx.book = book; if (book.user_id) { // Belongs to a user. Check if the book user has a connection with this // user if (book.user_id === user.id) await next(); else { const ownerConnections = await UserChildUtils.getUserConnections(book.user_id); console.log(ownerConnections); } } await next(); } } module.exports = BookPageAuth