mirror of
https://github.com/towfiqi/serpbear
synced 2025-06-26 18:15:54 +00:00
fix: fixes local SC data not being removed on deleting domain.
This commit is contained in:
@@ -4,6 +4,7 @@ import Domain from '../../database/models/domain';
|
||||
import Keyword from '../../database/models/keyword';
|
||||
import getdomainStats from '../../utils/domains';
|
||||
import verifyUser from '../../utils/verifyUser';
|
||||
import { removeLocalSCData } from '../../utils/searchConsole';
|
||||
|
||||
type DomainsGetRes = {
|
||||
domains: DomainType[]
|
||||
@@ -18,6 +19,7 @@ type DomainsAddResponse = {
|
||||
type DomainsDeleteRes = {
|
||||
domainRemoved: number,
|
||||
keywordsRemoved: number,
|
||||
SCDataRemoved: boolean,
|
||||
error?: string|null,
|
||||
}
|
||||
|
||||
@@ -87,19 +89,17 @@ const addDomain = async (req: NextApiRequest, res: NextApiResponse<DomainsAddRes
|
||||
|
||||
export const deleteDomain = async (req: NextApiRequest, res: NextApiResponse<DomainsDeleteRes>) => {
|
||||
if (!req.query.domain && typeof req.query.domain !== 'string') {
|
||||
return res.status(400).json({ domainRemoved: 0, keywordsRemoved: 0, error: 'Domain is Required!' });
|
||||
return res.status(400).json({ domainRemoved: 0, keywordsRemoved: 0, SCDataRemoved: false, error: 'Domain is Required!' });
|
||||
}
|
||||
try {
|
||||
const { domain } = req.query || {};
|
||||
const removedDomCount: number = await Domain.destroy({ where: { domain } });
|
||||
const removedKeywordCount: number = await Keyword.destroy({ where: { domain } });
|
||||
return res.status(200).json({
|
||||
domainRemoved: removedDomCount,
|
||||
keywordsRemoved: removedKeywordCount,
|
||||
});
|
||||
const SCDataRemoved = await removeLocalSCData(domain as string);
|
||||
return res.status(200).json({ domainRemoved: removedDomCount, keywordsRemoved: removedKeywordCount, SCDataRemoved });
|
||||
} catch (error) {
|
||||
console.log('[ERROR] Deleting Domain: ', req.query.domain, error);
|
||||
return res.status(400).json({ domainRemoved: 0, keywordsRemoved: 0, error: 'Error Deleting Domain' });
|
||||
return res.status(400).json({ domainRemoved: 0, keywordsRemoved: 0, SCDataRemoved: false, error: 'Error Deleting Domain' });
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { auth, searchconsole_v1 } from '@googleapis/searchconsole';
|
||||
import { readFile, writeFile } from 'fs/promises';
|
||||
import { readFile, writeFile, unlink } from 'fs/promises';
|
||||
import { getCountryCodeFromAlphaThree } from './countries';
|
||||
|
||||
export type SCDomainFetchError = {
|
||||
@@ -189,4 +189,19 @@ export const updateLocalSCData = async (domain:string, scDomainData?:SCDomainDat
|
||||
return scDomainData || emptyData;
|
||||
};
|
||||
|
||||
/**
|
||||
* The function removes the domain-specific Seach Console data stored in a local JSON file.
|
||||
* @param {string} domain - The `domain` parameter is a string that represents the domain for which the SC data file will be removed.
|
||||
* @returns {Promise<boolean>} - Returns true if file was removed, else returns false.
|
||||
*/
|
||||
export const removeLocalSCData = async (domain:string): Promise<boolean> => {
|
||||
const filePath = `${process.cwd()}/data/SC_${domain}.json`;
|
||||
try {
|
||||
await unlink(filePath);
|
||||
return true;
|
||||
} catch (error) {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
export default fetchSearchConsoleData;
|
||||
|
||||
Reference in New Issue
Block a user