Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"main": "index.js",
"name": "libsession_util_nodejs",
"description": "Wrappers for the Session Util Library",
"version": "0.4.6",
"version": "0.4.7",
"license": "GPL-3.0",
"author": {
"name": "Oxen Project",
Expand Down
37 changes: 26 additions & 11 deletions src/groups/meta_group_wrapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,11 @@ void MetaGroupWrapper::Init(Napi::Env env, Napi::Object exports) {
&MetaGroupWrapper::membersMarkPendingRemoval),
InstanceMethod(
"memberSetNameTruncated", &MetaGroupWrapper::memberSetNameTruncated),
InstanceMethod("memberSetInvited", &MetaGroupWrapper::memberSetInvited),
InstanceMethod("memberSetAccepted", &MetaGroupWrapper::memberSetAccepted),
InstanceMethod("memberSetInviteSent", &MetaGroupWrapper::memberSetInviteSent),
InstanceMethod(
"memberSetInviteFailed", &MetaGroupWrapper::memberSetInviteFailed),
InstanceMethod(
"memberSetInviteAccepted", &MetaGroupWrapper::memberSetInviteAccepted),
InstanceMethod("memberSetPromoted", &MetaGroupWrapper::memberSetPromoted),
InstanceMethod(
"memberSetPromotionSent", &MetaGroupWrapper::memberSetPromotionSent),
Expand Down Expand Up @@ -342,8 +345,9 @@ Napi::Value MetaGroupWrapper::infoSet(const Napi::CallbackInfo& info) {
assertIsObject(arg);
auto obj = arg.As<Napi::Object>();

// we want to not throw if the name is too long, but just truncate it
if (auto name = maybeNonemptyString(obj.Get("name"), "MetaGroupWrapper::setInfo name"))
this->meta_group->info->set_name(*name);
this->meta_group->info->set_name_truncated(*name);

if (auto created = maybeNonemptyInt(
obj.Get("createdAtSeconds"), "MetaGroupWrapper::setInfo set_created"))
Expand Down Expand Up @@ -454,30 +458,41 @@ void MetaGroupWrapper::memberSetNameTruncated(const Napi::CallbackInfo& info) {
});
}

void MetaGroupWrapper::memberSetInvited(const Napi::CallbackInfo& info) {
void MetaGroupWrapper::memberSetInviteFailed(const Napi::CallbackInfo& info) {
wrapExceptions(info, [&] {
assertIsString(info[0]);
auto pubkeyHex = toCppString(info[0], "memberSetInviteFailed");

auto m = this->meta_group->members->get(pubkeyHex);
if (m) {
m->set_invite_failed();
this->meta_group->members->set(*m);
}
});
}

void MetaGroupWrapper::memberSetInviteSent(const Napi::CallbackInfo& info) {
wrapExceptions(info, [&] {
assertIsString(info[0]);
assertIsBoolean(info[1]);
auto pubkeyHex = toCppString(info[0], "memberSetInvited");
auto failed = toCppBoolean(info[1], "memberSetInvited");
auto pubkeyHex = toCppString(info[0], "memberSetInviteSent");

auto m = this->meta_group->members->get(pubkeyHex);
if (m) {
m->set_invited(failed);
m->set_invite_sent();
this->meta_group->members->set(*m);
}
});
}

void MetaGroupWrapper::memberSetAccepted(const Napi::CallbackInfo& info) {
void MetaGroupWrapper::memberSetInviteAccepted(const Napi::CallbackInfo& info) {
wrapExceptions(info, [&] {
assertInfoLength(info, 1);
assertIsString(info[0]);

auto pubkeyHex = toCppString(info[0], "memberSetAccepted");
auto pubkeyHex = toCppString(info[0], "memberSetInviteAccepted");
auto m = this->meta_group->members->get(pubkeyHex);
if (m) {
m->set_accepted();
m->set_invite_accepted();
this->meta_group->members->set(*m);
}
});
Expand Down
5 changes: 3 additions & 2 deletions src/groups/meta_group_wrapper.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,9 @@ class MetaGroupWrapper : public Napi::ObjectWrap<MetaGroupWrapper> {
Napi::Value memberConstructAndSet(const Napi::CallbackInfo& info);

void memberSetNameTruncated(const Napi::CallbackInfo& info);
void memberSetInvited(const Napi::CallbackInfo& info);
void memberSetAccepted(const Napi::CallbackInfo& info);
void memberSetInviteFailed(const Napi::CallbackInfo& info);
void memberSetInviteSent(const Napi::CallbackInfo& info);
void memberSetInviteAccepted(const Napi::CallbackInfo& info);
void memberSetPromoted(const Napi::CallbackInfo& info);
void memberSetPromotionSent(const Napi::CallbackInfo& info);
void memberSetPromotionFailed(const Napi::CallbackInfo& info);
Expand Down
8 changes: 4 additions & 4 deletions src/user_groups_config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ struct toJs_impl<group_info> {
obj["authData"] = toJs(env, info.auth_data);
obj["invitePending"] = toJs(env, info.invited);
obj["kicked"] = toJs(env, info.kicked());
obj["destroyed"] = toJs(env, info.isDestroyed());
obj["destroyed"] = toJs(env, info.is_destroyed());

return obj;
}
Expand Down Expand Up @@ -346,7 +346,7 @@ Napi::Value UserGroupsWrapper::markGroupKicked(const Napi::CallbackInfo& info) {

auto group = config.get_group(groupPk);
if (group) {
group->markKicked();
group->mark_kicked();
config.set(*group);
}
return config.get_or_construct_group(groupPk);
Expand All @@ -359,7 +359,7 @@ Napi::Value UserGroupsWrapper::markGroupInvited(const Napi::CallbackInfo& info)

auto group = config.get_group(groupPk);
if (group) {
group->markInvited();
group->mark_invited();
config.set(*group);
}
return config.get_or_construct_group(groupPk);
Expand All @@ -372,7 +372,7 @@ Napi::Value UserGroupsWrapper::markGroupDestroyed(const Napi::CallbackInfo& info

auto group = config.get_group(groupPk);
if (group) {
group->markDestroyed();
group->mark_destroyed();
config.set(*group);
}
return config.get_or_construct_group(groupPk);
Expand Down
14 changes: 11 additions & 3 deletions types/groups/groupmembers.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,18 @@ declare module 'libsession_util_nodejs' {
// setters
memberSetNameTruncated: (pubkeyHex: PubkeyType, newName: string) => void;

/** A member's invite state defaults to invite-not-sent. Use this function to mark that you've sent one, or at least tried (failed: boolean)*/
memberSetInvited: (pubkeyHex: PubkeyType, failed: boolean) => void;
/**
* A member's invite state defaults to invite-not-sent.
* Use this function to mark that you've failed to send one successfully.
**/
memberSetInviteFailed: (pubkeyHex: PubkeyType) => void;
/**
* A member's invite state defaults to invite-not-sent.
* Use this function to mark that you've sent one successfully.
**/
memberSetInviteSent: (pubkeyHex: PubkeyType) => void;
/** User has accepted an invitation and is now a regular member of the group */
memberSetAccepted: (pubkeyHex: PubkeyType) => void;
memberSetInviteAccepted: (pubkeyHex: PubkeyType) => void;

/** Mark the member as waiting a promotion to be sent to them */
memberSetPromoted: (pubkeyHex: PubkeyType) => void;
Expand Down
10 changes: 6 additions & 4 deletions types/groups/metagroup.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,13 +92,14 @@ declare module 'libsession_util_nodejs' {
public memberConstructAndSet: MetaGroupWrapper['memberConstructAndSet'];
public memberGetAll: MetaGroupWrapper['memberGetAll'];
public memberGetAllPendingRemovals: MetaGroupWrapper['memberGetAllPendingRemovals'];
public memberSetAccepted: MetaGroupWrapper['memberSetAccepted'];
public memberSetInviteAccepted: MetaGroupWrapper['memberSetInviteAccepted'];
public memberSetNameTruncated: MetaGroupWrapper['memberSetNameTruncated'];
public memberSetPromoted: MetaGroupWrapper['memberSetPromoted'];
public memberSetPromotionAccepted: MetaGroupWrapper['memberSetPromotionAccepted'];
public memberSetPromotionSent: MetaGroupWrapper['memberSetPromotionSent'];
public memberSetPromotionFailed: MetaGroupWrapper['memberSetPromotionFailed'];
public memberSetInvited: MetaGroupWrapper['memberSetInvited'];
public memberSetInviteSent: MetaGroupWrapper['memberSetInviteSent'];
public memberSetInviteFailed: MetaGroupWrapper['memberSetInviteFailed'];
public memberEraseAndRekey: MetaGroupWrapper['memberEraseAndRekey'];
public membersMarkPendingRemoval: MetaGroupWrapper['membersMarkPendingRemoval'];
public memberSetProfilePicture: MetaGroupWrapper['memberSetProfilePicture'];
Expand Down Expand Up @@ -139,13 +140,14 @@ declare module 'libsession_util_nodejs' {
| MakeActionCall<MetaGroupWrapper, 'memberConstructAndSet'>
| MakeActionCall<MetaGroupWrapper, 'memberGetAll'>
| MakeActionCall<MetaGroupWrapper, 'memberGetAllPendingRemovals'>
| MakeActionCall<MetaGroupWrapper, 'memberSetAccepted'>
| MakeActionCall<MetaGroupWrapper, 'memberSetInviteAccepted'>
| MakeActionCall<MetaGroupWrapper, 'memberSetNameTruncated'>
| MakeActionCall<MetaGroupWrapper, 'memberSetPromoted'>
| MakeActionCall<MetaGroupWrapper, 'memberSetPromotionFailed'>
| MakeActionCall<MetaGroupWrapper, 'memberSetPromotionSent'>
| MakeActionCall<MetaGroupWrapper, 'memberSetPromotionAccepted'>
| MakeActionCall<MetaGroupWrapper, 'memberSetInvited'>
| MakeActionCall<MetaGroupWrapper, 'memberSetInviteSent'>
| MakeActionCall<MetaGroupWrapper, 'memberSetInviteFailed'>
| MakeActionCall<MetaGroupWrapper, 'memberEraseAndRekey'>
| MakeActionCall<MetaGroupWrapper, 'membersMarkPendingRemoval'>
| MakeActionCall<MetaGroupWrapper, 'memberSetProfilePicture'>
Expand Down
Loading