Refactor routes and views for improved clarity and functionality
- Commented out console log in the home route to reduce clutter in logs. - Updated formatting and consistency in the sites route, including removing unused domain fetching functionality. - Added form action to the add-form view for submitting new sites, ensuring the input field is properly named for backend processing.
This commit is contained in:
@@ -11,10 +11,10 @@ class SiteModel {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Inserts a new site into the database.
|
* Inserts a new site into the database.
|
||||||
*
|
*
|
||||||
* @param {string} name - The name of the site.
|
* @param {string} name - The name of the site.
|
||||||
* @param {string} domainName - The domain name of the site.
|
* @param {string} domainName - The domain name of the site.
|
||||||
*
|
*
|
||||||
* @returns {Promise<Object>} - The result of the insert operation.
|
* @returns {Promise<Object>} - The result of the insert operation.
|
||||||
*/
|
*/
|
||||||
async insert(domainName) {
|
async insert(domainName) {
|
||||||
@@ -47,7 +47,7 @@ class SiteModel {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves all sites from the database.
|
* Retrieves all sites from the database.
|
||||||
*
|
*
|
||||||
* @returns {Promise<Array>} - An array of site objects.
|
* @returns {Promise<Array>} - An array of site objects.
|
||||||
*/
|
*/
|
||||||
async getAll() {
|
async getAll() {
|
||||||
@@ -63,9 +63,9 @@ class SiteModel {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves a site by its ID.
|
* Retrieves a site by its ID.
|
||||||
*
|
*
|
||||||
* @param {number} id - The ID of the site.
|
* @param {number} id - The ID of the site.
|
||||||
*
|
*
|
||||||
* @returns {Promise<Object>} - The site object.
|
* @returns {Promise<Object>} - The site object.
|
||||||
*/
|
*/
|
||||||
async getById(id) {
|
async getById(id) {
|
||||||
@@ -81,9 +81,9 @@ class SiteModel {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves a site by its domain name.
|
* Retrieves a site by its domain name.
|
||||||
*
|
*
|
||||||
* @param {string} domainName - The domain name of the site.
|
* @param {string} domainName - The domain name of the site.
|
||||||
*
|
*
|
||||||
* @returns {Promise<Object>} - The site object.
|
* @returns {Promise<Object>} - The site object.
|
||||||
*/
|
*/
|
||||||
async getByDomainName(domainName) {
|
async getByDomainName(domainName) {
|
||||||
@@ -99,4 +99,4 @@ class SiteModel {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = SiteModel;
|
module.exports = SiteModel;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ const sitesModel = new SiteModel();
|
|||||||
/* GET home page. */
|
/* GET home page. */
|
||||||
router.get('/', async function(req, res, next) {
|
router.get('/', async function(req, res, next) {
|
||||||
const sites = await sitesModel.getAll();
|
const sites = await sitesModel.getAll();
|
||||||
console.log('Sites:', sites);
|
// console.log('Sites:', sites);
|
||||||
res.render('index', { title: 'Playwright Testing Dashboard', sites: sites });
|
res.render('index', { title: 'Playwright Testing Dashboard', sites: sites });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ const siteModel = new SiteModel();
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* GET sites listing.
|
* GET sites listing.
|
||||||
*
|
*
|
||||||
* Returns a list of all sites in JSON format.
|
* Returns a list of all sites in JSON format.
|
||||||
*/
|
*/
|
||||||
router.get('/', async function(req, res, next) {
|
router.get('/', async function (req, res, next) {
|
||||||
const sites = await siteModel.getAll();
|
const sites = await siteModel.getAll();
|
||||||
|
|
||||||
res.json(sites);
|
res.json(sites);
|
||||||
@@ -16,10 +16,10 @@ router.get('/', async function(req, res, next) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* GET site by ID.
|
* GET site by ID.
|
||||||
*
|
*
|
||||||
* Returns a specific site by its ID in JSON format.
|
* Returns a specific site by its ID in JSON format.
|
||||||
*/
|
*/
|
||||||
router.get('/:id', async function(req, res, next) {
|
router.get('/:id', async function (req, res, next) {
|
||||||
const siteId = req.params.id;
|
const siteId = req.params.id;
|
||||||
let site = null;
|
let site = null;
|
||||||
|
|
||||||
@@ -37,39 +37,14 @@ router.get('/:id', async function(req, res, next) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
|
||||||
* GET site by domain name.
|
|
||||||
*
|
|
||||||
* Returns a specific site by its domain name in JSON format.
|
|
||||||
*/
|
|
||||||
router.get('/domain/:domain', async function(req, res, next) {
|
|
||||||
const domainName = req.params.domain;
|
|
||||||
let sites = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
sites = await siteModel.getByDomainName(domainName);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Error fetching site by domain name:', error);
|
|
||||||
return res.status(400).send('Error fetching site: ' + error.message);
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log('Site found:', sites);
|
|
||||||
|
|
||||||
if (!sites || sites.length === 0) {
|
|
||||||
return res.status(404).send('Site not found');
|
|
||||||
} else {
|
|
||||||
res.json(sites[0]); // Return the first match
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* POST create a new site.
|
* POST create a new site.
|
||||||
*
|
*
|
||||||
* Creates a new site with the provided domain name.
|
* Creates a new site with the provided domain name.
|
||||||
*
|
*
|
||||||
* // TODO: Ability to add additional site properties (e.g., name, description)
|
* // TODO: Ability to add additional site properties (e.g., name, description)
|
||||||
*/
|
*/
|
||||||
router.post('/add', async function(req, res, next) {
|
router.post('/add', async function (req, res, next) {
|
||||||
const domain = req.body.domain;
|
const domain = req.body.domain;
|
||||||
let newSite = null;
|
let newSite = null;
|
||||||
|
|
||||||
@@ -90,7 +65,7 @@ router.post('/add', async function(req, res, next) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* PUT update an existing site.
|
* PUT update an existing site.
|
||||||
*
|
*
|
||||||
* Updates an existing site with the provided ID and new data.
|
* Updates an existing site with the provided ID and new data.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -103,4 +78,4 @@ router.post('/add', async function(req, res, next) {
|
|||||||
// TODO: Implement delete functionality
|
// TODO: Implement delete functionality
|
||||||
|
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
<fieldset class="fieldset bg-base-100 rounded-box px-8 py-4 shadow-md">
|
<form action="/sites/add" method="POST" class="w-full">
|
||||||
<legend class="fieldset-legend h3">Start a new test</legend>
|
<fieldset class="fieldset bg-base-100 rounded-box px-8 py-4 shadow-md">
|
||||||
<div class="flex gap-0">
|
<legend class="fieldset-legend h3">Start a new test</legend>
|
||||||
<div class="w-fit m-0 p-0">
|
<div class="flex gap-0">
|
||||||
<input type="text" class="input w-full border-r-0 rounded-r-none" placeholder="Site/URL to test" />
|
<div class="w-fit m-0 p-0">
|
||||||
<p class="label">Add either single URL or link to sitemap</p>
|
<input type="text" class="input w-full border-r-0 rounded-r-none" name="domain" id="domain" placeholder="Site/URL to test" />
|
||||||
|
<p class="label">Add either single URL or link to sitemap</p>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="btn btn-info">Test</button>
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" class="btn btn-info">Test</button>
|
</fieldset>
|
||||||
</div>
|
</form>
|
||||||
</fieldset>
|
|
||||||
|
|||||||
Reference in New Issue
Block a user