Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * MIT Licensed
- *
- * @author Fábio Pereira <fabio.pereira.gti@gmail.com>
- */
- import {Storage} from "../../config";
- /* Tempo em minutos */
- const defaultTime = 15;
- /* 1 minuto em milesegundos */
- const MINUTE = 6000;
- /* Configuração padrão */
- const defaultConfig = {
- db: Storage.Cache,
- time: defaultTime
- };
- /* Função que pega a diferença em minutos entre duas datas */
- const getDateDiffInMinutes = (dateA = new Date(), dateB = new Date()) => {
- const timeA = dateA.getTime();
- const timeB = dateB.getTime();
- return (timeA - timeB) / MINUTE;
- };
- class Cache {
- /**
- * Construtor Cache
- *
- * @param {Object} config Json com as configurações de cache
- * @author Fábio Pereira <fabio.pereira.gti@gmail.com>
- * @constructor
- */
- constructor (config = defaultConfig) {
- this.config = config;
- }
- /**
- * Verifica se o arquivo de cache está com a data expirada
- *
- * @param {string} cacheName URI da rota
- * @author Fábio Pereira <fabio.pereira.gti@gmail.com>
- * @return {bool} expired
- */
- async isExpired (cacheName) {
- await this.config.db.Cache.find({where: {key: btoa(cacheName)}}).
- then((data) => {
- if (Object.prototype.hasOwnProperty.call(data, expires)) {
- const now = new Date();
- const expires = new Date(data.expires);
- // eslint-disable-next-line no-magic-numbers
- return getDateDiffInMinutes(now, expires) >= 0;
- }
- return true;
- }).
- catch(() => true);
- }
- /**
- * Salva o conteúdo no BD
- *
- * @param {string} cacheName URI da rota
- * @param {Object} data Conteúdo a ser armazenado no cache
- * @author Fábio Pereira <fabio.pereira.gti@gmail.com>
- * @return {bool} saved
- */
- save (cacheName, data) {
- const now = new Date();
- const defaultTimeMs = defaultTime * MINUTE;
- }
- /**
- * Retorna o conteúdo do cache
- *
- * @param {string} cacheName URI da rota
- * @author Fábio Pereira <fabio.pereira.gti@gmail.com>
- * @return {object} data Dados da rota
- */
- async get (cacheName) {
- await this.config.db.Cache.find({where: {key: btoa(cacheName)}}).
- then((data) => data).
- catch((err) => err);
- }
- }
- export default Cache;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement