aboutsummaryrefslogtreecommitdiff
path: root/src/routes.ts
diff options
context:
space:
mode:
authorKevin J Hoerr <kjhoerr@protonmail.com>2021-09-16 16:52:14 -0400
committerKevin J Hoerr <kjhoerr@protonmail.com>2021-09-16 16:52:14 -0400
commit0d48769556db3ed313434c7e824339924c8df792 (patch)
treece584b7bd68c709beb2aad53bc0aa45f0165333d /src/routes.ts
parent6bbd3f03104e6dcd9da89a8ec5dcb5d992ee3ed5 (diff)
downloadao-coverage-0d48769556db3ed313434c7e824339924c8df792.tar.gz
ao-coverage-0d48769556db3ed313434c7e824339924c8df792.tar.bz2
ao-coverage-0d48769556db3ed313434c7e824339924c8df792.zip
Add format to head commit info
Diffstat (limited to 'src/routes.ts')
-rw-r--r--src/routes.ts121
1 files changed, 16 insertions, 105 deletions
diff --git a/src/routes.ts b/src/routes.ts
index df23a54..d242902 100644
--- a/src/routes.ts
+++ b/src/routes.ts
@@ -5,7 +5,7 @@ import path from "path";
import fs from "fs";
import formats, { Format } from "./formats";
-import Metadata, { HeadIdentity } from "./metadata";
+import Metadata, { HeadIdentity, isError } from "./metadata";
import loggerConfig from "./util/logger";
import { InvalidReportDocumentError, Messages } from "./errors";
@@ -24,7 +24,7 @@ export default (metadata: Metadata): Router => {
identity.organization,
identity.repository,
identity.branch,
- identity.head
+ identity.head.commit
);
const coverage = await formatter.parseCoverage(contents);
if (typeof coverage !== "number") {
@@ -76,8 +76,8 @@ export default (metadata: Metadata): Router => {
express.static(path.join(metadata.getPublicDir(), "static"))
);
- // Upload HTML file
- router.post("/v1/:org/:repo/:branch/:commit.html", (req, res) => {
+ // Upload file
+ router.post("/v1/:org/:repo/:branch/:commit.(ht)?x?ml", (req, res) => {
const { org, repo, branch, commit } = req.params;
const { token, format } = req.query;
@@ -111,69 +111,7 @@ export default (metadata: Metadata): Router => {
organization: org,
repository: repo,
branch,
- head: commit
- };
-
- try {
- const result = await commitFormatDocs(contents, identity, formatter);
-
- if (typeof result === "boolean") {
- if (result) {
- return res.status(200).send();
- } else {
- logger.error(
- "Unknown error while attempting to commit branch update"
- );
- return res.status(500).send(Messages.UnknownError);
- }
- } else {
- return res.status(400).send(Messages.InvalidFormat);
- }
- } catch (err) {
- logger.error(
- err ?? "Unknown error occurred while processing POST request"
- );
- return res.status(500).send(Messages.UnknownError);
- }
- });
- });
-
- // Upload XML file
- router.post("/v1/:org/:repo/:branch/:commit.xml", (req, res) => {
- const { org, repo, branch, commit } = req.params;
-
- const { token, format } = req.query;
- if (token != metadata.getToken()) {
- return res.status(401).send(Messages.InvalidToken);
- }
-
- if (typeof format !== "string" || !formats.listFormats().includes(format)) {
- return res.status(406).send(Messages.InvalidFormat);
- }
-
- const limit = metadata.getUploadLimit();
- if (Number(req.headers["content-length"] ?? 0) > limit) {
- return res.status(413).send(Messages.FileTooLarge);
- }
-
- let contents = "";
- req.on("data", raw => {
- if (contents.length <= limit) {
- contents += raw;
- }
- });
- req.on("end", async () => {
- // Ignore large requests
- if (contents.length > limit) {
- return res.status(413).send(Messages.FileTooLarge);
- }
-
- const formatter = formats.getFormat(format);
- const identity = {
- organization: org,
- repository: repo,
- branch,
- head: commit
+ head: { commit, format }
};
try {
@@ -212,7 +150,7 @@ export default (metadata: Metadata): Router => {
org,
repo,
branch,
- head,
+ head.commit,
file
);
fs.access(pathname, fs.constants.R_OK, err =>
@@ -227,12 +165,12 @@ export default (metadata: Metadata): Router => {
metadata.getHeadCommit(org, repo, branch).then(
result => {
- if (typeof result === "string") {
+ if (!isError(result)) {
const identity = {
organization: org,
repository: repo,
branch,
- head: result.toString()
+ head: result
};
retrieveFile(res, identity, "badge.svg");
} else {
@@ -248,47 +186,20 @@ export default (metadata: Metadata): Router => {
);
});
- router.get("/v1/:org/:repo/:branch.html", (req, res) => {
+ router.get("/v1/:org/:repo/:branch.(ht)?x?ml", (req, res) => {
const { org, repo, branch } = req.params;
- const format = formats.formats.tarpaulin;
-
- metadata.getHeadCommit(org, repo, branch).then(
- result => {
- if (typeof result === "string") {
- const identity = {
- organization: org,
- repository: repo,
- branch,
- head: result.toString()
- };
- retrieveFile(res, identity, format.fileName);
- } else {
- res.status(404).send(result.message);
- }
- },
- err => {
- logger.error(
- err ?? "Error occurred while fetching commit for GET request"
- );
- res.status(500).send(Messages.UnknownError);
- }
- );
- });
-
- router.get("/v1/:org/:repo/:branch.xml", (req, res) => {
- const { org, repo, branch } = req.params;
- const format = formats.formats.cobertura;
metadata.getHeadCommit(org, repo, branch).then(
result => {
- if (typeof result === "string") {
+ if (!isError(result)) {
const identity = {
organization: org,
repository: repo,
branch,
- head: result.toString()
+ head: result
};
- retrieveFile(res, identity, format.fileName);
+ const { fileName } = formats.getFormat(result.format);
+ retrieveFile(res, identity, fileName);
} else {
res.status(404).send(result.message);
}
@@ -309,7 +220,7 @@ export default (metadata: Metadata): Router => {
organization: org,
repository: repo,
branch,
- head: commit
+ head: { commit, format: "_" }
};
retrieveFile(res, identity, "badge.svg");
});
@@ -322,7 +233,7 @@ export default (metadata: Metadata): Router => {
organization: org,
repository: repo,
branch,
- head: commit
+ head: { commit, format: "tarpaulin" }
};
retrieveFile(res, identity, format.fileName);
});
@@ -334,7 +245,7 @@ export default (metadata: Metadata): Router => {
organization: org,
repository: repo,
branch,
- head: commit
+ head: { commit, format: "cobertura" }
};
retrieveFile(res, identity, format.fileName);
});