2024-03-05 10:20:36 +00:00

46 lines
1.3 KiB
JavaScript
Executable File

import { Controller } from "linebridge/dist/server"
import { Octokit } from "@octokit/rest"
const octokit = new Octokit({})
const endpoints = {
post: {
"/mobile": {
fn: async (req, res) => {
if (!process.env.GITHUB_REPO) {
return res.status(400).json({
error: "GITHUB_REPO env variable not set"
})
}
const lastRelease = await octokit.repos.getLatestRelease({
owner: process.env.GITHUB_REPO.split("/")[0],
repo: process.env.GITHUB_REPO.split("/")[1]
})
const bundle = lastRelease.data.assets.find((asset) => asset.name === "mobile_dist.zip")
const version = lastRelease.data.tag_name
if (!bundle) {
return res.status(400).json({
error: "mobile asset not available",
version: version,
})
}
return res.json({
url: bundle.browser_download_url,
version: version,
})
}
}
}
}
export default class AutoUpdate extends Controller {
static refName = "AutoUpdate"
static useRoute = "/auto-update"
httpEndpoints = endpoints
}