feat: add basic admin dashboard

This commit is contained in:
Sonny
2024-05-26 03:18:25 +02:00
committed by Sonny
parent f3f7f6272f
commit 202f70b010
24 changed files with 324 additions and 33 deletions

View File

@@ -1,6 +1,7 @@
import User from '#models/user';
import type { HttpContext } from '@adonisjs/core/http';
import logger from '@adonisjs/core/services/logger';
import db from '@adonisjs/lucid/services/db';
import { RouteName } from '@izzyjs/route/types';
export default class UsersController {
@@ -30,6 +31,7 @@ export default class UsersController {
return response.redirectToNamedRoute(this.redirectTo);
}
const userCount = await db.from('users').count('* as total');
const {
email,
id: providerId,
@@ -50,6 +52,7 @@ export default class UsersController {
avatarUrl,
token,
providerType: 'google',
isAdmin: userCount[0].total === '0',
}
);
@@ -66,4 +69,10 @@ export default class UsersController {
logger.info(`[${auth.user?.email}] disconnected successfully`);
response.redirectToNamedRoute(this.redirectTo);
}
async getAllUsersWithTotalRelations() {
return User.query()
.withCount('collections', (q) => q.as('totalCollections'))
.withCount('links', (q) => q.as('totalLinks'));
}
}