-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
543f410
commit 43d4c44
Showing
13 changed files
with
571 additions
and
539 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,70 +8,82 @@ import { getDbDomain } from "../functions/db/getDbDomain"; | |
* A service that provides access to the IpQualityScore service for checking and reporting domains. | ||
*/ | ||
export class IpQualityScoreService { | ||
/** | ||
* Asynchronously checks a given domain against the IpQualityScore service for any known bad domains. | ||
* | ||
* @param {string} domain - The domain name to be checked. | ||
* @returns | ||
*/ | ||
async domainCheck(domain: string) { | ||
metrics.increment("domain.check.api.ipqualityscore"); | ||
domain = { | ||
/** | ||
* Asynchronously checks a given domain against the IpQualityScore service for any known bad domains. | ||
* | ||
* @param {string} domain - The domain name to be checked. | ||
* @returns | ||
*/ | ||
check: async (domain: string) => { | ||
metrics.increment("services.ipqualityscore.domain.check"); | ||
|
||
const response = await axios.get( | ||
`https://ipqualityscore.com/api/json/url/${process.env | ||
.IPQS_API_KEY!}/${domain}`, | ||
{ | ||
// todo: extract headers to a seperate place to avoid duplication | ||
headers: { | ||
Referer: "https://phish.directory", | ||
"User-Agent": "[email protected]", | ||
"X-Identity": "[email protected]", | ||
const response = await axios.get( | ||
`https://ipqualityscore.com/api/json/url/${process.env | ||
.IPQS_API_KEY!}/${domain}`, | ||
{ | ||
// todo: extract headers to a seperate place to avoid duplication | ||
headers: { | ||
Referer: "https://phish.directory", | ||
"User-Agent": "[email protected]", | ||
"X-Identity": "[email protected]", | ||
}, | ||
}, | ||
}, | ||
); | ||
); | ||
|
||
const data = response.data; | ||
const dbDomain = await getDbDomain(domain); | ||
const data = response.data; | ||
const dbDomain = await getDbDomain(domain); | ||
|
||
await prisma.rawAPIData.create({ | ||
data: { | ||
sourceAPI: "IpQualityScore", | ||
domain: { | ||
connect: { | ||
id: dbDomain.id, | ||
await prisma.rawAPIData.create({ | ||
data: { | ||
sourceAPI: "IpQualityScore", | ||
domain: { | ||
connect: { | ||
id: dbDomain.id, | ||
}, | ||
}, | ||
data: data, | ||
}, | ||
data: data, | ||
}, | ||
}); | ||
}); | ||
|
||
return data; | ||
}, | ||
}; | ||
|
||
return data; | ||
} | ||
email = { | ||
/** | ||
* Asynchronously checks a given email against the IpQualityScore service for any known bad emails. | ||
* | ||
* @param {string} email - The email address to be checked. | ||
* @returns | ||
*/ | ||
check: async (email: string) => { | ||
metrics.increment("services.ipqualityscore.email.check"); | ||
|
||
async emailCheck(email: string) { | ||
let response = await axios.get( | ||
`https://ipqualityscore.com/api/json/email/${process.env | ||
.IPQS_API_KEY!}/${email}`, | ||
{ | ||
headers: { | ||
Referer: "https://phish.directory", | ||
"User-Agent": "[email protected]", | ||
"X-Identity": "[email protected]", | ||
let response = await axios.get( | ||
`https://ipqualityscore.com/api/json/email/${process.env | ||
.IPQS_API_KEY!}/${email}`, | ||
{ | ||
headers: { | ||
Referer: "https://phish.directory", | ||
"User-Agent": "internal-server@phish.directory", | ||
"X-Identity": "[email protected]", | ||
}, | ||
}, | ||
}, | ||
); | ||
); | ||
|
||
let data = response.data; | ||
let data = response.data; | ||
|
||
let keyData = { | ||
valid: data.valid, | ||
disposable: data.disposable, | ||
dns_valid: data.dns_valid, | ||
honeypot: data.honeypot, | ||
deliverability: data.deliverability, | ||
fraud_score: data.fraud_score, | ||
}; | ||
let keyData = { | ||
valid: data.valid, | ||
disposable: data.disposable, | ||
dns_valid: data.dns_valid, | ||
honeypot: data.honeypot, | ||
deliverability: data.deliverability, | ||
fraud_score: data.fraud_score, | ||
}; | ||
|
||
return keyData; | ||
} | ||
return keyData; | ||
}, | ||
}; | ||
} |
Oops, something went wrong.