diff --git a/packages/ipfs-api/src/server.ts b/packages/ipfs-api/src/server.ts index 2864572c..4b18048b 100644 --- a/packages/ipfs-api/src/server.ts +++ b/packages/ipfs-api/src/server.ts @@ -3,10 +3,23 @@ import express, { Request, Response } from "express"; import { rmdirSync, unlinkSync } from "fs"; import { extension as toExtension } from "mime-types"; import { Collection } from "mongodb"; -import { API_HOSTNAME, API_PORT, MONGO_CONNECTIONSTRING, MONGO_DBNAME, UPLOAD_PATH } from "./consts"; +import { + API_HOSTNAME, + API_PORT, + MONGO_CONNECTIONSTRING, + MONGO_DBNAME, + UPLOAD_PATH, +} from "./consts"; import { MongoDB } from "./mongodb"; import { IRecord } from "./types"; -import { contentType, download, extractArchive, isDirectory, uploadDirectory, uploadFile } from "./utils"; +import { + contentType, + download, + extractArchive, + isDirectory, + uploadDirectory, + uploadFile, +} from "./utils"; require("dotenv").config(); @@ -39,21 +52,26 @@ require("dotenv").config(); }); })(); -async function handleGetLink(req: Request, res: Response, recordsDB: Collection) { +async function handleGetLink( + req: Request, + res: Response, + recordsDB: Collection +) { try { const { cid } = req.params; const record = await recordsDB.findOne({ cid }); - if (record) { - if (record.skylink) { - res.status(200).send({ skylink: record.skylink }); - return; - } - } else { - // insert an empty record for the cid - await recordsDB.insertOne({ cid, createdAt: new Date(), skylink: "" }); + + console.log(record); + + if (record && record.skylink) { + res.status(200).send({ skylink: record.skylink }); + return; } + // insert an empty record for the cid + await recordsDB.insertOne({ cid, createdAt: new Date(), skylink: "" }); + // reupload the cid and return the skylink const skylink = await reuploadFile(cid, recordsDB); res.status(200).send({ skylink }); @@ -64,7 +82,10 @@ async function handleGetLink(req: Request, res: Response, recordsDB: Collection< } } -async function reuploadFile(cid: string, recordsDB: Collection): Promise { +async function reuploadFile( + cid: string, + recordsDB: Collection +): Promise { // get the content type const ct = await contentType(cid); const ext = toExtension(ct);