mirror of
https://github.com/orangecoding/fredy.git
synced 2026-06-16 12:31:07 +00:00
* init map view * switching off 3d buildings when sattelite view is on * rename menu items * upgrading dependencies, adding provider to popups * adding screenshot for map view * fixing readme * next release version
30 lines
1.0 KiB
JavaScript
Executable File
30 lines
1.0 KiB
JavaScript
Executable File
/*
|
|
* Copyright (c) 2026 by Christian Kellner.
|
|
* Licensed under Apache-2.0 with Commons Clause and Attribution/Naming Clause
|
|
*/
|
|
|
|
import fs from 'fs';
|
|
const path = './adapter';
|
|
|
|
/** Read every integration existing in ./adapter **/
|
|
const adapter = await Promise.all(
|
|
fs
|
|
.readdirSync('./lib/notification/adapter')
|
|
.filter((file) => file.endsWith('.js'))
|
|
.map(async (integPath) => await import(`${path}/${integPath}`)),
|
|
);
|
|
|
|
if (adapter.length === 0) {
|
|
throw new Error('Please specify at least one notification provider');
|
|
}
|
|
const findAdapter = (notificationAdapter) => {
|
|
return adapter.find((a) => a.config.id === notificationAdapter.id);
|
|
};
|
|
export const send = (serviceName, newListings, notificationConfig, jobKey) => {
|
|
//this is not being used in tests, therefore adapter are always set
|
|
return notificationConfig
|
|
.filter((notificationAdapter) => findAdapter(notificationAdapter) != null)
|
|
.map((notificationAdapter) => findAdapter(notificationAdapter))
|
|
.map((a) => a.send({ serviceName, newListings, notificationConfig, jobKey }));
|
|
};
|