Skip to content

Commit 2c8d209

Browse files
authored
Merge pull request #11 from Bilb/fix-reset-sending-states-all-members
feat: allow to reset sending state to all members
2 parents 8f61c8b + 43dbd0a commit 2c8d209

File tree

5 files changed

+24
-3
lines changed

5 files changed

+24
-3
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"main": "index.js",
33
"name": "libsession_util_nodejs",
44
"description": "Wrappers for the Session Util Library",
5-
"version": "0.4.15",
5+
"version": "0.4.16",
66
"license": "GPL-3.0",
77
"author": {
88
"name": "Oxen Project",

src/groups/meta_group_wrapper.cpp

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@ void MetaGroupWrapper::Init(Napi::Env env, Napi::Object exports) {
129129
&MetaGroupWrapper::memberSetPromotionAccepted),
130130
InstanceMethod(
131131
"memberSetProfilePicture", &MetaGroupWrapper::memberSetProfilePicture),
132+
InstanceMethod(
133+
"memberResetAllSendingState",
134+
&MetaGroupWrapper::memberResetAllSendingState),
132135
InstanceMethod("memberEraseAndRekey", &MetaGroupWrapper::memberEraseAndRekey),
133136

134137
// keys exposed functions
@@ -340,7 +343,7 @@ Napi::Value MetaGroupWrapper::metaMerge(const Napi::CallbackInfo& info) {
340343
toCppBufferView(itemObject.Get("data"), "meta.merge"));
341344
}
342345

343-
if(conf_strs.size()){
346+
if (conf_strs.size()) {
344347
auto info_merged = this->meta_group->info->merge(conf_strs);
345348
count_merged += info_merged.size();
346349
}
@@ -367,7 +370,7 @@ Napi::Value MetaGroupWrapper::metaMerge(const Napi::CallbackInfo& info) {
367370
toCppBufferView(itemObject.Get("data"), "meta.merge"));
368371
}
369372

370-
if(conf_strs.size()){
373+
if (conf_strs.size()) {
371374
auto member_merged = this->meta_group->members->merge(conf_strs);
372375
count_merged += member_merged.size();
373376
}
@@ -669,6 +672,20 @@ void MetaGroupWrapper::memberSetProfilePicture(const Napi::CallbackInfo& info) {
669672
});
670673
}
671674

675+
Napi::Value MetaGroupWrapper::memberResetAllSendingState(const Napi::CallbackInfo& info) {
676+
return wrapResult(info, [&] {
677+
bool changed = false;
678+
for (auto& member : *this->meta_group->members) {
679+
auto sending = this->meta_group->members->has_pending_send(member.session_id);
680+
if (sending) {
681+
this->meta_group->members->set_pending_send(member.session_id, false);
682+
changed = true;
683+
}
684+
}
685+
return changed;
686+
});
687+
}
688+
672689
void MetaGroupWrapper::membersMarkPendingRemoval(const Napi::CallbackInfo& info) {
673690
wrapExceptions(info, [&] {
674691
assertInfoLength(info, 2);

src/groups/meta_group_wrapper.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ class MetaGroupWrapper : public Napi::ObjectWrap<MetaGroupWrapper> {
7272
void memberSetPromotionFailed(const Napi::CallbackInfo& info);
7373
void memberSetPromotionAccepted(const Napi::CallbackInfo& info);
7474
void memberSetProfilePicture(const Napi::CallbackInfo& info);
75+
Napi::Value memberResetAllSendingState(const Napi::CallbackInfo& info);
7576
void memberSetSupplement(const Napi::CallbackInfo& info);
7677
Napi::Value memberEraseAndRekey(const Napi::CallbackInfo& info);
7778
void membersMarkPendingRemoval(const Napi::CallbackInfo& info);

types/groups/groupmembers.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ declare module 'libsession_util_nodejs' {
116116
memberSetPromotionAccepted: (pubkeyHex: PubkeyType) => void;
117117

118118
memberSetProfilePicture: (pubkeyHex: PubkeyType, profilePicture: ProfilePicture) => void;
119+
memberResetAllSendingState: () => boolean;
119120
memberSetSupplement: (pubkeyHex: PubkeyType) => void;
120121
membersMarkPendingRemoval: (members: Array<PubkeyType>, withMessages: boolean) => void;
121122

types/groups/metagroup.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ declare module 'libsession_util_nodejs' {
104104
public memberEraseAndRekey: MetaGroupWrapper['memberEraseAndRekey'];
105105
public membersMarkPendingRemoval: MetaGroupWrapper['membersMarkPendingRemoval'];
106106
public memberSetProfilePicture: MetaGroupWrapper['memberSetProfilePicture'];
107+
public memberResetAllSendingState: MetaGroupWrapper['memberResetAllSendingState'];
107108
public memberSetSupplement: MetaGroupWrapper['memberSetSupplement'];
108109

109110
// keys
@@ -154,6 +155,7 @@ declare module 'libsession_util_nodejs' {
154155
| MakeActionCall<MetaGroupWrapper, 'memberEraseAndRekey'>
155156
| MakeActionCall<MetaGroupWrapper, 'membersMarkPendingRemoval'>
156157
| MakeActionCall<MetaGroupWrapper, 'memberSetProfilePicture'>
158+
| MakeActionCall<MetaGroupWrapper, 'memberResetAllSendingState'>
157159
| MakeActionCall<MetaGroupWrapper, 'memberSetSupplement'>
158160

159161
// keys actions

0 commit comments

Comments
 (0)