UNPKG

@fdm-monster/server

Version:

FDM Monster is a bulk OctoPrint manager to set up, configure and monitor 3D printers. Our aim is to provide extremely optimized websocket performance and reliability.

81 lines (80 loc) 2.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "GithubService", { enumerable: true, get: function() { return GithubService; } }); const _runtimeexceptions = require("../../exceptions/runtime.exceptions"); class GithubService { octokitService; logger; constructor(loggerFactory, octokitService){ this.octokitService = octokitService; this.logger = loggerFactory(GithubService.name); } async wasAuthenticated() { const result = await this.octokitService.auth(); return result?.type === "token"; } async getRateLimit() { return this.octokitService.rest.rateLimit.get(); } async getLatestRelease(owner, repo) { try { return await this.octokitService.rest.repos.getLatestRelease({ owner, repo }); } catch (e) { if (e?.name === "HttpError" && e.status == 404) { throw new _runtimeexceptions.NotFoundException(`Could not find latest release`); } throw e; } } async getReleases(owner, repo) { try { return await this.octokitService.rest.repos.listReleases({ owner, repo }); } catch (e) { if (e?.name === "HttpError" && e.status == 404) { throw new _runtimeexceptions.NotFoundException(`Could not find releases`); } throw e; } } async getReleaseByTag(owner, repo, tag) { return await this.octokitService.rest.repos.getReleaseByTag({ owner, repo, tag }).catch((e)=>{ if (e.name === "HttpError" && e.status == 404) { throw new _runtimeexceptions.NotFoundException(`Could not find release with tag ${tag}`); } throw e; }); } async requestAsset(owner, repo, assetId) { return await this.octokitService.request("GET /repos/:owner/:repo/releases/assets/:asset_id", { headers: { Accept: "application/octet-stream" }, owner, repo, asset_id: assetId }).catch((e)=>{ if (e.name === "HttpError" && e.status == 404) { throw new _runtimeexceptions.NotFoundException(`Could not find asset with id ${assetId}`); } throw e; }); } } //# sourceMappingURL=github.service.js.map