SKUs page file check

This commit is contained in:
Samantha Kellow 2024-04-24 17:48:32 +01:00
parent e88a45b9d5
commit 82c30cdda8

View File

@ -31,23 +31,40 @@ export default async function SKUCheckPage() {
dbxFiles = await dbx.filesListFolder({ dbxFiles = await dbx.filesListFolder({
path: '/scape squared/004 print ready - print files' path: '/scape squared/004 print ready - print files'
}); });
// sabotage?
// dbxFiles.result.entries = dbxFiles.result.entries.filter(file => file.name !== "SCSQ300262_NECK.png");
} catch (e) { } catch (e) {
dbxError = e + "" dbxError = e + ""
} }
// sabotage?
// dbxFiles.result.entries.splice(5, 1);
return ( return (
<div> <div>
{products.map((product) => { {products.map((product) => {
const skus = createProductSKUs(product.title); const skus = createProductSKUs(product.title);
if (!skus) return <div key={product.id} className="m-10 bg-red-300 ">SKU error for product {product.title}</div>
// sabotage? // sabotage?
// product.variants[3]!.sku = 'SCSQ10001_STTU781_M_C002_B_NT'; // product.variants[3]!.sku = 'SCSQ10001_STTU781_M_C002_B_NT';
const productCode = skus[0]!.split('_')[0]
const productBase = productCode!.slice(0, (productCode!.length -1))
const productFiles = dbxFiles?.result.entries const productFiles = dbxFiles?.result.entries
.filter((file) => file.name.startsWith(skus[0]!.split('_')[0]!)) .filter((file) => file.name.startsWith(productBase!))
const productFileNames = productFiles?.map(file => file.name);
const sizeDigits = ["1", "2", "3"];
const sideSuffixes = ["_NECK.png", "_BACK.png"];
const expectedFiles = sizeDigits.flatMap((sizeDigit) =>
sideSuffixes.flatMap((sideSuffix) => productBase + sizeDigit + sideSuffix)
);
const missingFiles = expectedFiles.filter(expected => !productFileNames?.includes(expected));
const extraFiles = productFileNames?.filter(filename => !expectedFiles.includes(filename));
return ( return (
<div key={product.id} className="mt-10 lg:grid lg:grid-cols-12 gap-x-4 gap-y-1"> <div key={product.id} className="mt-10 lg:grid lg:grid-cols-12 gap-x-4 gap-y-1">
@ -55,10 +72,15 @@ export default async function SKUCheckPage() {
<div <div
className={ className={
'mb-4 lg:col-span-4 lg:col-start-3 rounded ' + 'mb-4 lg:col-span-4 lg:col-start-3 rounded ' +
(productFiles?.length !== 2 ? 'bg-amber-300' : '') (missingFiles?.length > 0 ? 'bg-amber-300' : '')
} }
> >
Dropbox: {productFiles?.map(file => file.name).join(", ")}{dbxError} Dropbox:{' '}
{missingFiles.length === 0
? '✅ All expected files found'
: '⛔️ Missing files: ' + missingFiles.join(', ')}
{extraFiles && <div className='text-sm'>(Extra files: {extraFiles.join(", ")})</div>}
{dbxError}
</div> </div>
{product.variants.map((variant, i) => ( {product.variants.map((variant, i) => (
<> <>