mirror of
https://github.com/bluewave-labs/Checkmate.git
synced 2026-01-13 13:19:42 -06:00
* Initial commit * Prepare for pagespeed Check * removed unused code, updated JSdoc * reverted controller
43 lines
1.3 KiB
JavaScript
43 lines
1.3 KiB
JavaScript
const PageSpeedCheck = require("../models/PageSpeedCheck");
|
|
const axios = require("axios");
|
|
const logger = require("../utils/logger");
|
|
|
|
class PageSpeedService {
|
|
constructor() {
|
|
this.SERVICE_NAME = "PageSpeedService";
|
|
}
|
|
|
|
/**
|
|
* Runs a PageSpeed check using Google Lighthouse API.
|
|
* @param {string} url - The URL to check.
|
|
* @returns {Promise<Object>} The results from the PageSpeed API.
|
|
*/
|
|
async runPageSpeedCheck(url) {
|
|
try {
|
|
const response = await axios.get(
|
|
"https://pagespeedonline.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://www.google.com&category=seo&category=accessibility&category=best-practices&category=performance"
|
|
);
|
|
|
|
return response.data;
|
|
} catch (error) {
|
|
logger.error(`Error running PageSpeed check for ${url}`, {
|
|
service: this.SERVICE_NAME,
|
|
error: error.message,
|
|
});
|
|
throw new Error("Failed to run PageSpeed check");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Creates a new PageSpeedCheck document.
|
|
* @param {Object} data - The data for the new PageSpeedCheck.
|
|
* @returns {Promise<PageSpeedCheck>} The created PageSpeedCheck document.
|
|
*/
|
|
async createPageSpeedCheck(data) {
|
|
const newPageSpeedCheck = new PageSpeedCheck(data);
|
|
return await newPageSpeedCheck.save();
|
|
}
|
|
}
|
|
|
|
module.exports = PageSpeedService;
|