From 9b9a0b2da80e68c1d1c8df89f8be745a0811d273 Mon Sep 17 00:00:00 2001 From: NickWang Date: Mon, 14 Nov 2022 11:33:46 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20implement=20conversa?= =?UTF-8?q?tionReadMark?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client/puppet-service.ts | 11 +++++++++-- src/server/puppet-implementation.ts | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/client/puppet-service.ts b/src/client/puppet-service.ts index 8d2bcce9..db79bde4 100644 --- a/src/client/puppet-service.ts +++ b/src/client/puppet-service.ts @@ -744,12 +744,19 @@ class PuppetService extends PUPPET.Puppet { * Conversation * */ - override conversationReadMark ( + override async conversationReadMark ( conversationId: string, hasRead = true, ) : Promise { log.verbose('PuppetService', 'conversationMarkRead(%s, %s)', conversationId, hasRead) - return PUPPET.throwUnsupportedError('not implemented. See https://github.com/wechaty/wechaty-puppet/pull/132') + + const request = new grpcPuppet.ConversationReadRequest() + request.setConversationId(conversationId) + await util.promisify( + this.grpcManager.client.conversationRead + .bind(this.grpcManager.client), + )(request) + } /** diff --git a/src/server/puppet-implementation.ts b/src/server/puppet-implementation.ts index 02f7312a..f8505d8b 100644 --- a/src/server/puppet-implementation.ts +++ b/src/server/puppet-implementation.ts @@ -94,6 +94,20 @@ function puppetImplementation ( const puppetServerImpl: grpcPuppet.IPuppetServer = { + conversationRead: async (call, callback) => { + log.verbose('PuppetServiceImpl', 'conversationRead()') + + try { + const conversationId = call.request.getConversationId() + await puppet.conversationReadMark(conversationId) + + const response = new grpcPuppet.ConversationReadResponse() + return callback(null, response) + } catch (e) { + return grpcError('currentUser', e, callback) + } + }, + contactAlias: async (call, callback) => { log.verbose('PuppetServiceImpl', 'contactAlias()') From 49cf44de837c3250472e2e6c3d3c87968d203d03 Mon Sep 17 00:00:00 2001 From: NickWang Date: Wed, 26 Apr 2023 15:36:21 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20hasread?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client/puppet-service.ts | 1 + src/server/puppet-implementation.ts | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/client/puppet-service.ts b/src/client/puppet-service.ts index db79bde4..b6375533 100644 --- a/src/client/puppet-service.ts +++ b/src/client/puppet-service.ts @@ -752,6 +752,7 @@ class PuppetService extends PUPPET.Puppet { const request = new grpcPuppet.ConversationReadRequest() request.setConversationId(conversationId) + request.setHasRead(hasRead) await util.promisify( this.grpcManager.client.conversationRead .bind(this.grpcManager.client), diff --git a/src/server/puppet-implementation.ts b/src/server/puppet-implementation.ts index f8505d8b..7ee55449 100644 --- a/src/server/puppet-implementation.ts +++ b/src/server/puppet-implementation.ts @@ -99,7 +99,8 @@ function puppetImplementation ( try { const conversationId = call.request.getConversationId() - await puppet.conversationReadMark(conversationId) + const hasRead = call.request.getHasRead() + await puppet.conversationReadMark(conversationId, hasRead) const response = new grpcPuppet.ConversationReadResponse() return callback(null, response)