From de3e821c1f78ce68c866f77c843de6a80a1fdbbc Mon Sep 17 00:00:00 2001 From: thecodrr Date: Sat, 24 Jul 2021 11:13:41 +0500 Subject: [PATCH] feat: add offers api to get platform specific promo codes --- packages/core/api/index.js | 2 ++ packages/core/api/offers.js | 12 ++++++++++++ packages/core/common.js | 2 ++ packages/core/utils/constants.js | 8 ++++++-- 4 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 packages/core/api/offers.js diff --git a/packages/core/api/index.js b/packages/core/api/index.js index f738b42e0..d94f47822 100644 --- a/packages/core/api/index.js +++ b/packages/core/api/index.js @@ -18,6 +18,7 @@ import Outbox from "./outbox"; import UserManager from "./user-manager"; import http from "../utils/http"; import Monographs from "./monographs"; +import Offers from "./offers"; /** * @type {EventSource} @@ -72,6 +73,7 @@ class Database { this.migrations = new Migrations(this); this.outbox = new Outbox(this); this.monographs = new Monographs(this); + this.offers = new Offers(); // collections /** @type {Notes} */ diff --git a/packages/core/api/offers.js b/packages/core/api/offers.js new file mode 100644 index 000000000..5af4ce842 --- /dev/null +++ b/packages/core/api/offers.js @@ -0,0 +1,12 @@ +import { CLIENT_ID } from "../common"; +import hosts from "../utils/constants"; +import http from "../utils/http"; + +export default class Offers { + async getCode(promo, platform) { + const result = await http.get( + `${hosts.SUBSCRIPTIONS_HOST}/offers?promoCode=${promo}&clientId=${CLIENT_ID}&platformId=${platform}` + ); + return result.code; + } +} diff --git a/packages/core/common.js b/packages/core/common.js index aa0ddc057..2c694790e 100644 --- a/packages/core/common.js +++ b/packages/core/common.js @@ -10,6 +10,8 @@ export async function sendCheckUserStatusEvent(type) { return results.some((r) => r.type === type && r.result === true); } +export const CLIENT_ID = "notesnook"; + export const CHECK_IDS = { noteColor: "note:color", noteTag: "note:tag", diff --git a/packages/core/utils/constants.js b/packages/core/utils/constants.js index 75afb16ba..29536885c 100644 --- a/packages/core/utils/constants.js +++ b/packages/core/utils/constants.js @@ -1,4 +1,4 @@ -const module = { +const hosts = { API_HOST: process.env.NODE_ENV === "production" ? "https://api.notesnook.com" @@ -11,6 +11,10 @@ const module = { process.env.NODE_ENV === "production" ? "https://events.streetwriters.co" : "http://localhost:7264", + SUBSCRIPTIONS_HOST: + process.env.NODE_ENV === "production" + ? "https://subscriptions.streetwriters.co" + : "http://localhost:9264", }; -export default module; +export default hosts;