UNPKG

northwind-rest-api

Version:

Local REST API Exposing Northwind Database.

128 lines (114 loc) 4 kB
const locations = require("../helpers/locations"); const uuid = require("uuid").v4; const fsPromises = require("fs/promises"); const fs = require("fs"); async function saveProductImage(image) { if (!image) return null; const extension = image.name.substring(image.name.lastIndexOf(".")); const fileName = uuid() + extension; const absolutePath = locations.getProductImageFile(fileName); await image.mv(absolutePath); return fileName; } async function updateProductImage(currentFileName, newImage) { if(!newImage) return currentFileName; await deleteProductImage(currentFileName); const newFileName = await saveProductImage(newImage); return newFileName; } async function deleteProductImage(fileName) { if (!fileName) return; const absolutePath = locations.getProductImageFile(fileName); if(!absolutePath) return; if(!fs.existsSync(absolutePath)) return; try { await fsPromises.unlink(absolutePath); } catch (err) { } } async function saveEmployeeImage(image) { if (!image) return null; const extension = image.name.substring(image.name.lastIndexOf(".")); const fileName = uuid() + extension; const absolutePath = locations.getEmployeeImageFile(fileName); await image.mv(absolutePath); return fileName; } async function updateEmployeeImage(currentFileName, newImage) { if(!newImage) return currentFileName; await deleteEmployeeImage(currentFileName); const newFileName = await saveEmployeeImage(newImage); return newFileName; } async function deleteEmployeeImage(fileName) { if (!fileName) return; const absolutePath = locations.getEmployeeImageFile(fileName); if(!absolutePath) return; if(!fs.existsSync(absolutePath)) return; try { await fsPromises.unlink(absolutePath); } catch (err) { } } async function saveSupplierImage(image) { if (!image) return null; const extension = image.name.substring(image.name.lastIndexOf(".")); const fileName = uuid() + extension; const absolutePath = locations.getSupplierImageFile(fileName); await image.mv(absolutePath); return fileName; } async function updateSupplierImage(currentFileName, newImage) { if(!newImage) return currentFileName; await deleteSupplierImage(currentFileName); const newFileName = await saveSupplierImage(newImage); return newFileName; } async function deleteSupplierImage(fileName) { if (!fileName) return; const absolutePath = locations.getSupplierImageFile(fileName); if(!absolutePath) return; if(!fs.existsSync(absolutePath)) return; try { await fsPromises.unlink(absolutePath); } catch (err) { } } async function saveCategoryImage(image) { if (!image) return null; const extension = image.name.substring(image.name.lastIndexOf(".")); const fileName = uuid() + extension; const absolutePath = locations.getCategoryImageFile(fileName); await image.mv(absolutePath); return fileName; } async function updateCategoryImage(currentFileName, newImage) { if(!newImage) return currentFileName; await deleteCategoryImage(currentFileName); const newFileName = await saveCategoryImage(newImage); return newFileName; } async function deleteCategoryImage(fileName) { if (!fileName) return; const absolutePath = locations.getCategoryImageFile(fileName); if(!absolutePath) return; if(!fs.existsSync(absolutePath)) return; try { await fsPromises.unlink(absolutePath); } catch (err) { } } module.exports = { saveProductImage, updateProductImage, deleteProductImage, saveEmployeeImage, updateEmployeeImage, deleteEmployeeImage, saveSupplierImage, updateSupplierImage, deleteSupplierImage, saveCategoryImage, updateCategoryImage, deleteCategoryImage };