Skip to content

Commit 16a256d

Browse files
committed
feat: add pro provider constants
1 parent ebcb599 commit 16a256d

File tree

2 files changed

+49
-5
lines changed

2 files changed

+49
-5
lines changed

include/utilities.hpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include "oxenc/hex.h"
1414
#include "session/config/namespaces.hpp"
1515
#include "session/config/profile_pic.hpp"
16+
#include "session/types.h"
1617
#include "session/types.hpp"
1718
#include "utilities.hpp"
1819

@@ -130,6 +131,13 @@ struct toJs_impl<T, std::enable_if_t<std::is_convertible_v<T, std::string_view>>
130131
}
131132
};
132133

134+
template <>
135+
struct toJs_impl<string8> {
136+
auto operator()(const Napi::Env& env, string8 s) const {
137+
return Napi::String::New(env, s.data, s.size);
138+
}
139+
};
140+
133141
template <typename T>
134142
struct toJs_impl<
135143
T,

src/constants.cpp

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,43 @@ Napi::Object ConstantsWrapper::Init(Napi::Env env, Napi::Object exports) {
1717
const char* class_name = "CONSTANTS";
1818

1919
auto pro_urls = Napi::Object::New(env);
20-
pro_urls["roadmap"] = toJs(env, SESSION_PRO_URLS.roadmap.data);
21-
pro_urls["privacy_policy"] = toJs(env, SESSION_PRO_URLS.privacy_policy.data);
22-
pro_urls["terms_of_conditions"] = toJs(env, SESSION_PRO_URLS.terms_of_conditions.data);
23-
pro_urls["pro_access_not_found"] = toJs(env, SESSION_PRO_URLS.pro_access_not_found.data);
24-
pro_urls["support_url"] = toJs(env, SESSION_PRO_URLS.support_url.data);
20+
pro_urls["roadmap"] = toJs(env, SESSION_PRO_URLS.roadmap);
21+
pro_urls["privacy_policy"] = toJs(env, SESSION_PRO_URLS.privacy_policy);
22+
pro_urls["terms_of_conditions"] = toJs(env, SESSION_PRO_URLS.terms_of_conditions);
23+
pro_urls["pro_access_not_found"] = toJs(env, SESSION_PRO_URLS.pro_access_not_found);
24+
pro_urls["support_url"] = toJs(env, SESSION_PRO_URLS.support_url);
25+
26+
auto pro_provider_nil = Napi::Object::New(env);
27+
pro_provider_nil["device"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_NIL].device);
28+
pro_provider_nil["store"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_NIL].store);
29+
pro_provider_nil["platform"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_NIL].platform);
30+
pro_provider_nil["platform_account"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_NIL].platform_account);
31+
pro_provider_nil["refund_url"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_NIL].refund_url);
32+
pro_provider_nil["update_subscription_url"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_NIL].update_subscription_url);
33+
pro_provider_nil["cancel_subscription_url"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_NIL].cancel_subscription_url);
34+
35+
auto pro_provider_google = Napi::Object::New(env);
36+
pro_provider_google["device"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_GOOGLE_PLAY_STORE].device);
37+
pro_provider_google["store"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_GOOGLE_PLAY_STORE].store);
38+
pro_provider_google["platform"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_GOOGLE_PLAY_STORE].platform);
39+
pro_provider_google["platform_account"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_GOOGLE_PLAY_STORE].platform_account);
40+
pro_provider_google["refund_url"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_GOOGLE_PLAY_STORE].refund_url);
41+
pro_provider_google["update_subscription_url"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_GOOGLE_PLAY_STORE].update_subscription_url);
42+
pro_provider_google["cancel_subscription_url"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_GOOGLE_PLAY_STORE].cancel_subscription_url);
43+
44+
auto pro_provider_ios = Napi::Object::New(env);
45+
pro_provider_ios["device"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_IOS_APP_STORE].device);
46+
pro_provider_ios["store"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_IOS_APP_STORE].store);
47+
pro_provider_ios["platform"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_IOS_APP_STORE].platform);
48+
pro_provider_ios["platform_account"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_IOS_APP_STORE].platform_account);
49+
pro_provider_ios["refund_url"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_IOS_APP_STORE].refund_url);
50+
pro_provider_ios["update_subscription_url"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_IOS_APP_STORE].update_subscription_url);
51+
pro_provider_ios["cancel_subscription_url"] = toJs(env, SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[SESSION_PRO_BACKEND_PAYMENT_PROVIDER_IOS_APP_STORE].cancel_subscription_url);
52+
53+
auto pro_providers = Napi::Object::New(env);
54+
pro_providers["0"] = toJs(env, pro_provider_nil);
55+
pro_providers["1"] = toJs(env, pro_provider_google);
56+
pro_providers["2"] = toJs(env, pro_provider_ios);
2557

2658
// construct javascript constants object
2759
Napi::Function cls = DefineClass(
@@ -51,6 +83,10 @@ Napi::Object ConstantsWrapper::Init(Napi::Env env, Napi::Object exports) {
5183
"LIBSESSION_PRO_URLS",
5284
pro_urls,
5385
napi_enumerable),
86+
ObjectWrap::StaticValue(
87+
"LIBSESSION_PRO_PROVIDERS",
88+
pro_providers,
89+
napi_enumerable),
5490
ObjectWrap::StaticValue(
5591
"LIBSESSION_UTIL_VERSION",
5692
Napi::String::New(env, LIBSESSION_UTIL_VERSION_FULL),

0 commit comments

Comments
 (0)