From abad357bde27669088db22240b01ebf4a93aab13 Mon Sep 17 00:00:00 2001 From: M M Date: Mon, 22 Jul 2024 19:49:05 -0700 Subject: [PATCH] implement a page speed service. --- Server/service/pageSpeedService.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Server/service/pageSpeedService.js diff --git a/Server/service/pageSpeedService.js b/Server/service/pageSpeedService.js new file mode 100644 index 000000000..032319977 --- /dev/null +++ b/Server/service/pageSpeedService.js @@ -0,0 +1,29 @@ +const PageSpeedCheck = require("../models/PageSpeedCheck"); +const axios = require("axios"); +const logger = require("../utils/logger"); + +class PageSpeedService { + constructor() { + this.SERVICE_NAME = "PageSpeedService"; + } + + async runPageSpeedCheck(url) { + try { + const response = await axios.get(`https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${url}`); + 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"); + } + } + + async createPageSpeedCheck(data) { + const newPageSpeedCheck = new PageSpeedCheck(data); + return await newPageSpeedCheck.save(); + } +} + +module.exports = PageSpeedService;