Skip to content

Commit

Permalink
Merge pull request #103 from Politiwatch/add-product-api
Browse files Browse the repository at this point in the history
Add product API endpoint
  • Loading branch information
milesmcc authored Jun 24, 2021
2 parents 7f9345c + 2993f4e commit 76b09b6
Show file tree
Hide file tree
Showing 6 changed files with 18,195 additions and 23 deletions.
42 changes: 35 additions & 7 deletions gulpfile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,14 @@ import {
hbsFactory,
getProductPageBuildTasks,
getDirectoryPagesTasks,
getExtensionAPI,
} from "./src/build/utils";

const gulp = require("gulp");
const postcss = require("gulp-postcss");
const rename = require("gulp-rename");
const del = require("del");
const fs = require("fs");

const rubric: RubricQuestion[] = loadRubric();
const contributors: Contributor[] = loadContributors();
Expand All @@ -27,10 +29,36 @@ gulp.task("clean", () => {
return del("./dist/**/*");
});

gulp.task("build api", () => {
gulp.task("build api", async () => {
const apiVersion = "v2";

if (!fs.existsSync(`./dist/api/${apiVersion}/products`)) {
fs.mkdirSync(`./dist/api/${apiVersion}/products`, { recursive: true });
}

const resolvedDates = await Promise.all(
products.map((product) => product.lastUpdated)
);

const resolvedProducts = products.map((product, i) => {
return {
...product,
lastUpdated: resolvedDates[i],
};
});

resolvedProducts.forEach((product) => {
fs.writeFileSync(
`./dist/api/${apiVersion}/products/${product.slug}.json`,
JSON.stringify(product)
);
});

const api = getExtensionAPI(resolvedProducts);

return gulp
.src(["./src/templates/pages/api/**/*.json"])
.pipe(hbsFactory({ rubric, contributors, products }))
.pipe(hbsFactory({ rubric, contributors, resolvedProducts, api }))
.pipe(gulp.dest("./dist/api/"));
});

Expand All @@ -50,10 +78,10 @@ gulp.task("build general pages", () => {
gulp.task(
"build pages",
gulp.parallel(
...getProductPageBuildTasks(products),
...getDirectoryPagesTasks(products),
"build general pages",
"build api"
...getProductPageBuildTasks(products),
...getDirectoryPagesTasks(products),
"build general pages",
"build api"
)
);

Expand All @@ -75,7 +103,7 @@ gulp.task("collect static", () => {

gulp.task("collect root favicon", () => {
return gulp.src(["./src/static/img/*.ico"]).pipe(gulp.dest("./dist/"));
})
});

gulp.task("collect product icons", () => {
return gulp.src(["./icons/**/*"]).pipe(gulp.dest("./dist/static/icons/"));
Expand Down
Loading

0 comments on commit 76b09b6

Please sign in to comment.