Skip to content

Commit

Permalink
shop and admin panel
Browse files Browse the repository at this point in the history
  • Loading branch information
NebraskyTheWolf committed Jan 27, 2024
1 parent ca19f64 commit 9fdd1f6
Show file tree
Hide file tree
Showing 9 changed files with 52 additions and 79 deletions.
27 changes: 5 additions & 22 deletions src/api/Server/AbstractWebRoutes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,29 +10,12 @@
/* */
/* ************************************************************************** */

import Base from "../../abstracts/Base";
import { Router, Response } from "express";
import express from "express";
import { Router, Response, Express } from "express";

import CacheManager from "../../cache/CacheManager";
import Authentication from "./middlewares/Authentication";

export default abstract class AbstractWebRoutes extends Base {
protected router: Router
public isProtected: boolean;
public prefix: string

public constructor() {
super("routes", "", "SERVER")
this.router = router;

this.register(); // SELF REGISTERING.
export default abstract class AbstractWebRoutes {
public constructor(app: Express) {
this.register(app); // SELF REGISTERING.
}

public abstract register(): void
public routing(): Router {
return router;
}
public abstract register(app: Express): void
}

export var router = express.Router()
14 changes: 7 additions & 7 deletions src/api/website/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,13 @@ export default class WebsiteServer {

this.server = http.createServer(app)

app.use(`/`, new Index().routing())
app.use(`/profile`, new Profile().routing())
app.use(`/servers`, new Server().routing())
app.use(`/admin`, new Admin().routing())
app.use(`/dashboard`, new Dashboard().routing())
app.use(`/shop`, new Shop().routing())
app.use(`/auth`, new Auth().routing())
new Index(app)
new Profile(app)
new Server(app)
new Admin(app)
new Dashboard(app)
new Shop(app)
new Auth(app)

Riniya.instance.logger.info('The website is operational.')
}
Expand Down
38 changes: 18 additions & 20 deletions src/api/website/routes/Admin.ts
Original file line number Diff line number Diff line change
@@ -1,81 +1,79 @@
import { Request } from "express"
import { Express, Request } from 'express'
import AbstractWebRoutes from '../../Server/AbstractWebRoutes'
import { isAdminLogged } from '../utils/Middleware'

export default class Admin extends AbstractWebRoutes {
async register () {
async register (app: Express) {

this.prefix = 'admin'

this.router.get('/', isAdminLogged, function (req: Request, res) {
app.get('/admin', isAdminLogged, function (req: Request, res) {

})

// Guilds

this.router.get('/servers', isAdminLogged, function (req: Request, res) {
app.get('/admin/servers', isAdminLogged, function (req: Request, res) {

})

this.router.get('/servers/:guild/edit', isAdminLogged, function (req: Request, res) {
app.get('/admin/servers/:guild/edit', isAdminLogged, function (req: Request, res) {

})

this.router.post('/servers/:guild/edit/callback', isAdminLogged, function (req: Request, res) {
app.post('/admin/servers/:guild/edit/callback', isAdminLogged, function (req: Request, res) {

})

// Users

this.router.get('/users', isAdminLogged, function (req: Request, res) {
app.get('/admin/users', isAdminLogged, function (req: Request, res) {

})

this.router.get('/users/:user/edit', isAdminLogged, function (req: Request, res) {
app.get('/admin/users/:user/edit', isAdminLogged, function (req: Request, res) {

})

this.router.post('/users/:user/edit/callback', isAdminLogged, function (req: Request, res) {
app.post('/admin/users/:user/edit/callback', isAdminLogged, function (req: Request, res) {

})

// Messages

this.router.get('/messages', isAdminLogged, function (req: Request, res) {
app.get('/admin/messages', isAdminLogged, function (req: Request, res) {

})

this.router.get('/messages/:message/edit', isAdminLogged, function (req: Request, res) {
app.get('/admin/messages/:message/edit', isAdminLogged, function (req: Request, res) {

})

this.router.post('/messages/:message/edit/callback', isAdminLogged, function (req: Request, res) {
app.post('/admin/messages/:message/edit/callback', isAdminLogged, function (req: Request, res) {

})

// LOGIN

this.router.get('/login', function (req: Request, res) {
app.get('/admin/login', function (req: Request, res) {
return res.render('admin/views/auth/login')
})

this.router.post('/login/callback', function (req: Request, res) {
app.post('/admin/login/callback', function (req: Request, res) {

})

this.router.get('/logout', function (req: Request, res) {
app.get('/admin/logout', function (req: Request, res) {

})

this.router.post('/login/mfa', function (req: Request, res) {
app.post('/admin/login/mfa', function (req: Request, res) {

})

this.router.get('/login/password-recovery', function (req: Request, res) {
app.get('/admin/login/password-recovery', function (req: Request, res) {
return res.render('admin/views/auth/password-recovery')
})

this.router.post('/login/recovery', function (req: Request, res) {
app.post('/admin/login/recovery', function (req: Request, res) {

})
}
Expand Down
12 changes: 5 additions & 7 deletions src/api/website/routes/Auth.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
import passport from 'passport'
import AbstractWebRoutes from '../../Server/AbstractWebRoutes'
import { Express } from 'express'

export default class Auth extends AbstractWebRoutes {
async register () {

this.prefix = 'auth'

this.router.get('/user/login', passport.authenticate("discord"));
this.router.get('/user/logout', function (req, res) {
async register (app: Express) {
app.get('/user/login', passport.authenticate("discord"));
app.get('/user/logout', function (req, res) {
req.logout(req.user, () => {
return res.redirect('https://www.riniya.uk')
})
});

this.router.get('/user/callback', passport.authenticate('discord', {
app.get('/user/callback', passport.authenticate('discord', {
failureRedirect: '/',
}), function(req, res) {
res.redirect('https://www.riniya.uk/dashboard/onboard')
Expand Down
13 changes: 5 additions & 8 deletions src/api/website/routes/Dashboard.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Request } from "express"
import { Express, Request } from 'express'
import { IUser } from '../passport'
import Guild from '@riniya.ts/database/Guild/Guild'
import { isNull } from '@riniya.ts/types'
Expand All @@ -7,12 +7,9 @@ import AbstractWebRoutes from '../../Server/AbstractWebRoutes'
import { isUserLogged } from '../utils/Middleware'

export default class Dashboard extends AbstractWebRoutes {
async register () {
this.isProtected = true;
async register (app: Express) {

this.prefix = 'dashboard'

this.router.get('/onboard/setup/:guild/:step', isUserLogged, async function (req: Request, res) {
app.get('/dashboard/onboard/setup/:guild/:step', isUserLogged, async function (req: Request, res) {
const user = req.user as IUser
res.render('dashboard/views/onboard', {
title: 'Setting up RINIYA',
Expand All @@ -23,7 +20,7 @@ export default class Dashboard extends AbstractWebRoutes {
isFirst: true
})
})
this.router.get('/onboard', isUserLogged, async function (req: Request, res) {
app.get('/dashboard/onboard', isUserLogged, async function (req: Request, res) {
const user = req.user as IUser
const userGuilds = user.guilds.map(async x => {
const dGuild = Riniya.instance.guilds.cache.get(x.id);
Expand Down Expand Up @@ -54,7 +51,7 @@ export default class Dashboard extends AbstractWebRoutes {
})

// Dynamic router
this.router.get('/:guildId/:slug?/:route?/:operation?/:id?', isUserLogged, async function (req: Request, res) {
app.get('/dashboard/:guildId/:slug?/:route?/:operation?/:id?', isUserLogged, async function (req: Request, res) {
// User and guilds data
const user = req.user as IUser

Expand Down
5 changes: 2 additions & 3 deletions src/api/website/routes/Profile.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import AbstractWebRoutes from '../../Server/AbstractWebRoutes'
import { Express } from 'express'

export default class Profile extends AbstractWebRoutes {
async register () {
this.prefix = 'profile'
}
async register (app: Express) {}
}
5 changes: 2 additions & 3 deletions src/api/website/routes/Server.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import AbstractWebRoutes from '../../Server/AbstractWebRoutes'
import { Express } from 'express'

export default class Server extends AbstractWebRoutes {
async register () {
this.prefix = 'servers'
}
async register (app: Express) {}
}
10 changes: 4 additions & 6 deletions src/api/website/routes/Shop.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
import { Request } from "express"
import { Express, Request } from 'express'
import { IUser } from '../passport'
import AbstractWebRoutes from '../../Server/AbstractWebRoutes'
import { isUserLogged } from '../utils/Middleware'

export default class Shop extends AbstractWebRoutes {
async register () {
this.prefix = 'shop'

this.router.get('/', isUserLogged, function (req: Request, res) {
async register (app: Express) {
app.get('/shop', isUserLogged, function (req: Request, res) {
res.render('shop/index', {
user: (req.user as IUser)
})
})

this.router.post('/confirm', isUserLogged, function (req: Request, res) {
app.post('/shop/confirm', isUserLogged, function (req: Request, res) {

})
}
Expand Down
7 changes: 4 additions & 3 deletions src/api/website/routes/index.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { CustomRequest } from '../index'
import AbstractWebRoutes from '../../Server/AbstractWebRoutes'
import { Express } from 'express'

export default class Index extends AbstractWebRoutes {
async register () {
this.router.get('/', function (req, res) {
async register (app: Express) {
app.get('/', function (req, res) {

res.cookie('session', {
logged: false
Expand All @@ -18,7 +19,7 @@ export default class Index extends AbstractWebRoutes {
})
});

this.router.get('/commands', function (req: CustomRequest, res) {
app.get('/commands', function (req: CustomRequest, res) {
res.render('commands', {
title: 'RINIYA - Commands',
isLogged: req.isAuthenticated()
Expand Down

0 comments on commit 9fdd1f6

Please sign in to comment.