70 lines
2.2 KiB
JavaScript
70 lines
2.2 KiB
JavaScript
import * as fs from 'fs';
|
|
import path from 'path';
|
|
import { GrayApiBid } from '../models/grays.com/grays-api-bid.js';
|
|
import { GraysProductBid } from '../models/grays.com/grays-product-bid.js';
|
|
import { LangtonsApiBid } from '../models/langtons.com.au/langtons-api-bid.js';
|
|
import { LangtonsProductBid } from '../models/langtons.com.au/langtons-product-bid.js';
|
|
import configs from '../system/config.js';
|
|
import CONSTANTS from '../system/constants.js';
|
|
import { sanitizeFileName } from '../system/utils.js';
|
|
import { LawsonsApiBid } from '../models/lawsons.com.au/lawsons-api-bid.js';
|
|
import { LawsonsProductBid } from '../models/lawsons.com.au/lawsons-product-bid.js';
|
|
|
|
const TIME = 30 * 1000;
|
|
|
|
export const handleCloseRemoveProduct = (data) => {
|
|
if (!Array.isArray(data)) return;
|
|
|
|
data.forEach(async (item) => {
|
|
if (item.page_context) {
|
|
safeClosePage(item);
|
|
}
|
|
});
|
|
};
|
|
|
|
export const createBidProduct = (web, data) => {
|
|
switch (web.origin_url) {
|
|
case configs.WEB_URLS.GRAYS: {
|
|
return new GraysProductBid({ ...data });
|
|
}
|
|
case configs.WEB_URLS.LANGTONS: {
|
|
return new LangtonsProductBid({ ...data });
|
|
}
|
|
case configs.WEB_URLS.LAWSONS: {
|
|
return new LawsonsProductBid({ ...data });
|
|
}
|
|
}
|
|
};
|
|
|
|
export const createApiBid = (web) => {
|
|
switch (web.origin_url) {
|
|
case configs.WEB_URLS.GRAYS: {
|
|
return new GrayApiBid({ ...web });
|
|
}
|
|
case configs.WEB_URLS.LANGTONS: {
|
|
return new LangtonsApiBid({ ...web });
|
|
}
|
|
case configs.WEB_URLS.LAWSONS: {
|
|
return new LawsonsApiBid({ ...web });
|
|
}
|
|
}
|
|
};
|
|
|
|
export const deleteProfile = (data) => {
|
|
const filePath = path.join(CONSTANTS.PROFILE_PATH, sanitizeFileName(data.origin_url) + '.json');
|
|
|
|
if (fs.existsSync(filePath)) {
|
|
fs.unlinkSync(filePath);
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
};
|
|
|
|
export const shouldUpdateProductTab = (productTab) => {
|
|
const updatedAt = new Date(productTab.updated_at).getTime();
|
|
const now = Date.now();
|
|
|
|
return now - updatedAt >= TIME;
|
|
};
|