import common from "../common/polling.mjs";
import sampleEmit from "./test-event.mjs";
export default {
...common,
key: "predictleads-new-news-event",
name: "New News Event Added",
description: "Emit new event for each new news event for a specific company. [See the documentation](https://docs.predictleads.com/v3/api_endpoints/news_events_dataset/retrieve_company_s_news_events)",
version: "0.0.1",
type: "source",
dedupe: "unique",
props: {
...common.props,
domain: {
description: "The domain of the company to retrieve news events for (e.g., `google.com`).",
propDefinition: [
common.props.app,
"domain",
],
},
categories: {
type: "string[]",
label: "Categories",
description: "Filter news events by specific categories.",
optional: true,
options: [
"acquires",
"merges_with",
"sells_assets_to",
"signs_new_client",
"files_suit_against",
"has_issues_with",
"closes_offices_in",
"decreases_headcount_by",
"attends_event",
"expands_facilities",
"expands_offices_in",
"expands_offices_to",
"increases_headcount_by",
"opens_new_location",
"goes_public",
"invests_into",
"invests_into_assets",
"receives_financing",
"hires",
"leaves",
"promotes",
"retires_from",
"integrates_with",
"is_developing",
"launches",
"partners_with",
"receives_award",
"recognized_as",
"identified_as_competitor_of",
],
},
},
methods: {
...common.methods,
getDateField() {
return "found_at";
},
getResourcesFn() {
return this.app.retrieveNewsEvents;
},
getResourcesFnArgs() {
const {
domain, categories,
} = this;
return {
domain,
params: {
categories: categories?.join(","),
},
};
},
generateMeta(resource) {
return {
id: resource.id,
summary: `New News Event: ${resource.id}`,
ts: Date.parse(resource.attributes.found_at),
};
},
},
sampleEmit,
};