Ctrl K
ComunidadGuías…

server/api/UpdateRoute.js

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
const { compareVersions } = require("compare-versions");
const request = require("../modules/safeRequest");

const db = require("../models/models");
const packageJson = require("../package.json");

module.exports = (app) => {
  // check for updates [no permission check needed]
  app.get("/update", async (req, res) => {
    const [appData] = await db.App.findAll();

    const updateOpt = {
      url: `${app.settings.chartbrewMainAPI}/telemetry/updates`,
      method: "POST",
      form: {
        instance_id: appData.id,
        version: packageJson.version,
      },
      headers: {
        "Accept": "application/json",
        "Content-Type": "application/json",
        "User-Agent": "chartbrew-os",
      },
      json: true,
    };

    return request(updateOpt)
      .then((latestRelease) => {
        if (compareVersions(latestRelease.tag_name, packageJson.version) === 1) {
          return res.status(200).send(latestRelease);
        }

        return res.status(200).send({ upToDate: true });
      })
      .catch(() => {
        return res.status(200).send({ upToDate: true });
      });
  });

  return (req, res, next) => {
    next();
  };
};