22
33#include < napi.h>
44
5- #include < iostream>
6-
75#include " base_config.hpp"
8- #include " oxen/log.hpp"
96#include " oxenc/hex.h"
107#include " pro/types.hpp"
118#include " profile_pic.hpp"
12- #include " session/config/base.hpp"
139#include " session/config/user_profile.hpp"
1410#include " session/ed25519.hpp"
1511#include " utilities.hpp"
@@ -107,8 +103,9 @@ void UserConfigWrapper::Init(Napi::Env env, Napi::Object exports) {
107103 InstanceMethod (" setNoteToSelfExpiry" , &UserConfigWrapper::setNoteToSelfExpiry),
108104 InstanceMethod (" getProConfig" , &UserConfigWrapper::getProConfig),
109105 InstanceMethod (" setProConfig" , &UserConfigWrapper::setProConfig),
110- InstanceMethod (
111- " setProFeaturesBitset" , &UserConfigWrapper::setProFeaturesBitset),
106+ InstanceMethod (" removeProConfig" , &UserConfigWrapper::removeProConfig),
107+ InstanceMethod (" setProBadge" , &UserConfigWrapper::setProBadge),
108+ InstanceMethod (" setAnimatedAvatar" , &UserConfigWrapper::setAnimatedAvatar),
112109 InstanceMethod (
113110 " getProFeaturesBitset" , &UserConfigWrapper::getProFeaturesBitset),
114111 InstanceMethod (
@@ -266,11 +263,8 @@ void UserConfigWrapper::setNoteToSelfExpiry(const Napi::CallbackInfo& info) {
266263
267264Napi::Value UserConfigWrapper::getProConfig (const Napi::CallbackInfo& info) {
268265 return wrapResult (info, [&] {
269- // TODO fixme once extra_data is implemented
270-
271- oxen::log::warning (cat, " getProConfig() is not wrapped to libsession" );
272- if (this ->pro_config .has_value ()) {
273- return toJs (info.Env (), this ->pro_config );
266+ if (config.get_pro_config ().has_value ()) {
267+ return toJs (info.Env (), config.get_pro_config ().value ());
274268 }
275269
276270 return info.Env ().Null ();
@@ -285,38 +279,43 @@ void UserConfigWrapper::setProConfig(const Napi::CallbackInfo& info) {
285279
286280 session::config::ProConfig pro_config =
287281 pro_config_from_object (pro_config_js.As <Napi::Object>());
288- // TODO fixme once extra_data is implemented
289282
290- // config.set_pro_config(pro_config);
291- this ->pro_config = pro_config;
283+ config.set_pro_config (pro_config);
292284 });
293285}
294286
295- Napi::Value UserConfigWrapper::getProFeaturesBitset (const Napi::CallbackInfo& info) {
287+ Napi::Value UserConfigWrapper::removeProConfig (const Napi::CallbackInfo& info) {
296288 return wrapResult (info, [&] {
297- // TODO fixme once extra_data is implemented
298- // config.get_pro_features_bitset();
299- oxen::log::warning (cat, " getProFeaturesBitset() is not wrapped to libsession" );
300- return proFeaturesToJsBitset (info.Env (), this ->pro_user_features );
289+ assertInfoLength (info, 0 );
290+
291+ return config.remove_pro_config ();
301292 });
302293}
303294
304- void UserConfigWrapper::setProFeaturesBitset (const Napi::CallbackInfo& info) {
295+ Napi::Value UserConfigWrapper::getProFeaturesBitset (const Napi::CallbackInfo& info) {
296+ return wrapResult (
297+ info, [&] { return proFeaturesToJsBitset (info.Env (), config.get_pro_features ()); });
298+ }
299+
300+ void UserConfigWrapper::setProBadge (const Napi::CallbackInfo& info) {
305301 wrapExceptions (info, [&] {
306302 assertInfoLength (info, 1 );
307- auto pro_features = info[0 ];
308- assertIsObject (info[0 ]);
309- auto obj = info[0 ].As <Napi::Object>();
310- assertIsBigint (obj.Get (" proFeaturesBitset" ), " UserConfigWrapper::setProFeaturesBitset" );
303+ assertIsBoolean (info[0 ], " setProBadge" );
304+
305+ auto enabled = toCppBoolean (info[0 ], " UserConfigWrapper::setProBadge" );
311306
312- auto pro_user_features_js = obj.Get (" proFeaturesBitset" );
313- auto pro_user_features_cpp = toCppIntegerB (
314- pro_user_features_js, " UserConfigWrapper::setProFeaturesBitset" , false );
307+ config.set_pro_badge (enabled);
308+ });
309+ }
310+
311+ void UserConfigWrapper::setAnimatedAvatar (const Napi::CallbackInfo& info) {
312+ wrapExceptions (info, [&] {
313+ assertInfoLength (info, 1 );
314+ assertIsBoolean (info[0 ], " setAnimatedAvatar" );
315315
316- // TODO fixme once extra_data is implemented
316+ auto enabled = toCppBoolean (info[ 0 ], " UserConfigWrapper::setAnimatedAvatar " );
317317
318- // config.set_pro_features_bitset(pro_user_features_cpp);
319- this ->pro_user_features = pro_user_features_cpp;
318+ config.set_animated_avatar (enabled);
320319 });
321320}
322321
0 commit comments