Add endpoint to get enabled/known gif providers
2 files changed, 15 insertions, 0 deletions
diff --git a/src/api/Server.ts b/src/api/Server.ts
index 7fa5476d..1266bf42 100644
--- a/src/api/Server.ts
+++ b/src/api/Server.ts
@@ -191,6 +191,10 @@ export class SpacebarServer extends Server {
});
});
+ app.get("/_spacebar/api/v1/integrations/gif", (req, res) => {
+ res.json({ providers: GifProviderManager.getProviders() });
+ });
+
// Pickup non-expired polls
const nonExpiredPolls = await Message.createQueryBuilder("message").where("message.poll->>'expiry' > :now", { now: new Date().toISOString() }).getMany();
diff --git a/src/integrations/gifs/GifProviderManager.ts b/src/integrations/gifs/GifProviderManager.ts
index 8bbfccf5..799ee002 100644
--- a/src/integrations/gifs/GifProviderManager.ts
+++ b/src/integrations/gifs/GifProviderManager.ts
@@ -48,4 +48,15 @@ export class GifProviderManager {
throw new Error(`Unknown GIF provider, or it is not enabled: ${id}, known GIF providers: ${this._providers.keys().toArray().join(", ")}`);
}
+
+ public static getProviders() {
+ const providers: { [key: string]: { available: boolean } } = {};
+ for (const [id, provider] of this._providers) {
+ providers[id] = {
+ available: provider.available,
+ };
+ }
+
+ return providers;
+ }
}
|