@juzi/wechaty-puppet-service 1.0.18 → 1.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/cjs/src/client/payload-store.d.ts +2 -0
  2. package/dist/cjs/src/client/payload-store.d.ts.map +1 -1
  3. package/dist/cjs/src/client/payload-store.js +10 -0
  4. package/dist/cjs/src/client/payload-store.js.map +1 -1
  5. package/dist/cjs/src/client/puppet-service.d.ts +12 -11
  6. package/dist/cjs/src/client/puppet-service.d.ts.map +1 -1
  7. package/dist/cjs/src/client/puppet-service.js +84 -94
  8. package/dist/cjs/src/client/puppet-service.js.map +1 -1
  9. package/dist/cjs/src/config.d.ts +1 -0
  10. package/dist/cjs/src/config.d.ts.map +1 -1
  11. package/dist/cjs/src/config.js +2 -1
  12. package/dist/cjs/src/config.js.map +1 -1
  13. package/dist/cjs/src/package-json.js +5 -5
  14. package/dist/cjs/src/package-json.js.map +1 -1
  15. package/dist/cjs/src/server/event-stream-manager.d.ts.map +1 -1
  16. package/dist/cjs/src/server/event-stream-manager.js +14 -0
  17. package/dist/cjs/src/server/event-stream-manager.js.map +1 -1
  18. package/dist/cjs/src/server/puppet-implementation.d.ts.map +1 -1
  19. package/dist/cjs/src/server/puppet-implementation.js +52 -77
  20. package/dist/cjs/src/server/puppet-implementation.js.map +1 -1
  21. package/dist/esm/src/client/payload-store.d.ts +2 -0
  22. package/dist/esm/src/client/payload-store.d.ts.map +1 -1
  23. package/dist/esm/src/client/payload-store.js +10 -0
  24. package/dist/esm/src/client/payload-store.js.map +1 -1
  25. package/dist/esm/src/client/puppet-service.d.ts +12 -11
  26. package/dist/esm/src/client/puppet-service.d.ts.map +1 -1
  27. package/dist/esm/src/client/puppet-service.js +84 -94
  28. package/dist/esm/src/client/puppet-service.js.map +1 -1
  29. package/dist/esm/src/config.d.ts +1 -0
  30. package/dist/esm/src/config.d.ts.map +1 -1
  31. package/dist/esm/src/config.js +1 -0
  32. package/dist/esm/src/config.js.map +1 -1
  33. package/dist/esm/src/package-json.js +5 -5
  34. package/dist/esm/src/package-json.js.map +1 -1
  35. package/dist/esm/src/server/event-stream-manager.d.ts.map +1 -1
  36. package/dist/esm/src/server/event-stream-manager.js +14 -0
  37. package/dist/esm/src/server/event-stream-manager.js.map +1 -1
  38. package/dist/esm/src/server/puppet-implementation.d.ts.map +1 -1
  39. package/dist/esm/src/server/puppet-implementation.js +52 -77
  40. package/dist/esm/src/server/puppet-implementation.js.map +1 -1
  41. package/package.json +5 -5
  42. package/src/client/payload-store.ts +10 -0
  43. package/src/client/puppet-service.ts +109 -105
  44. package/src/config.ts +1 -0
  45. package/src/package-json.ts +5 -5
  46. package/src/server/event-stream-manager.ts +14 -0
  47. package/src/server/puppet-implementation.ts +64 -77
@@ -68,7 +68,6 @@ import { packageJson } from '../package-json.js'
68
68
 
69
69
  import { GrpcManager } from './grpc-manager.js'
70
70
  import { PayloadStore } from './payload-store.js'
71
- import type { TagIdentifier } from '@juzi/wechaty-puppet/filters'
72
71
 
73
72
  export type PuppetServiceOptions = PUPPET.PuppetOptions & {
74
73
  authority? : string
@@ -348,6 +347,12 @@ class PuppetService extends PUPPET.Puppet {
348
347
  case grpcPuppet.EventType.EVENT_TYPE_SCAN:
349
348
  this.emit('scan', JSON.parse(payload) as PUPPET.payloads.EventScan)
350
349
  break
350
+ case grpcPuppet.EventType.EVENT_TYPE_TAG:
351
+ this.emit('tag', JSON.parse(payload) as PUPPET.payloads.EventTag)
352
+ break
353
+ case grpcPuppet.EventType.EVENT_TYPE_TAG_GROUP:
354
+ this.emit('tag-group', JSON.parse(payload) as PUPPET.payloads.EventTagGroup)
355
+ break
351
356
  case grpcPuppet.EventType.EVENT_TYPE_RESET:
352
357
  log.warn('PuppetService', 'onGrpcStreamEvent() got an EventType.EVENT_TYPE_RESET ?')
353
358
  // the `reset` event should be dealed not send out
@@ -440,6 +445,8 @@ class PuppetService extends PUPPET.Puppet {
440
445
  [PUPPET.types.Dirty.Post]: async (_: string) => {},
441
446
  [PUPPET.types.Dirty.Room]: async (id: string) => this._payloadStore.room?.delete(id),
442
447
  [PUPPET.types.Dirty.RoomMember]: async (id: string) => this._payloadStore.roomMember?.delete(id),
448
+ [PUPPET.types.Dirty.Tag]: async (key: string) => this._payloadStore.tag?.delete(key),
449
+ [PUPPET.types.Dirty.TagGroup]: async (id: string) => this._payloadStore.tagGroup?.delete(id),
443
450
  [PUPPET.types.Dirty.Unspecified]: async (id: string) => { throw new Error('Unspecified type with id: ' + id) },
444
451
  }
445
452
 
@@ -1930,19 +1937,14 @@ class PuppetService extends PUPPET.Puppet {
1930
1937
  */
1931
1938
 
1932
1939
  override async tagContactTagAdd (
1933
- tags: TagIdentifier[],
1940
+ tagIds: string[],
1934
1941
  contactIds: string[],
1935
1942
  ): Promise<void> {
1936
- log.verbose('PuppetService', 'tagContactTagAdd(%s, %s)', JSON.stringify(tags), contactIds)
1943
+ log.verbose('PuppetService', 'tagContactTagAdd(%s, %s)', tagIds, contactIds)
1937
1944
 
1938
1945
  const request = new grpcPuppet.TagContactTagAddRequest()
1939
1946
 
1940
- request.setTagsList(tags.map(t => {
1941
- const tag = new grpcPuppet.TagIdentifier()
1942
- t.groupId && tag.setGroupId(t.groupId)
1943
- tag.setId(t.id)
1944
- return tag
1945
- }))
1947
+ request.setTagIdsList(tagIds)
1946
1948
  request.setContactIdsList(contactIds)
1947
1949
 
1948
1950
  await util.promisify(
@@ -1952,19 +1954,14 @@ class PuppetService extends PUPPET.Puppet {
1952
1954
  }
1953
1955
 
1954
1956
  override async tagContactTagRemove (
1955
- tags: TagIdentifier[],
1957
+ tagIds: string[],
1956
1958
  contactIds: string[],
1957
1959
  ): Promise<void> {
1958
- log.verbose('PuppetService', 'tagContactTagRemove(%s, %s)', JSON.stringify(tags), contactIds)
1960
+ log.verbose('PuppetService', 'tagContactTagRemove(%s, %s)', tagIds, contactIds)
1959
1961
 
1960
1962
  const request = new grpcPuppet.TagContactTagRemoveRequest()
1961
1963
 
1962
- request.setTagsList(tags.map(t => {
1963
- const tag = new grpcPuppet.TagIdentifier()
1964
- t.groupId && tag.setGroupId(t.groupId)
1965
- tag.setId(t.id)
1966
- return tag
1967
- }))
1964
+ request.setTagIdsList(tagIds)
1968
1965
  request.setContactIdsList(contactIds)
1969
1966
 
1970
1967
  await util.promisify(
@@ -1975,7 +1972,7 @@ class PuppetService extends PUPPET.Puppet {
1975
1972
 
1976
1973
  override async tagGroupAdd (
1977
1974
  tagGroupName: string,
1978
- ): Promise<PUPPET.payloads.TagGroup | void> {
1975
+ ): Promise<string | void> {
1979
1976
  log.verbose('PuppetService', 'tagGroupAdd(%s)', tagGroupName)
1980
1977
 
1981
1978
  const request = new grpcPuppet.TagGroupAddRequest()
@@ -1987,18 +1984,9 @@ class PuppetService extends PUPPET.Puppet {
1987
1984
  .bind(this.grpcManager.client),
1988
1985
  )(request)
1989
1986
 
1990
- const grpcPayload = result.getPayload()
1991
- const id = grpcPayload?.getId()
1992
- const name = grpcPayload?.getName()
1993
-
1994
- if (id && name) {
1995
- const payload: PUPPET.payloads.TagGroup = {
1996
- id,
1997
- name,
1998
- }
1999
- return payload
2000
- }
1987
+ const id = result.getTagGroupId()
2001
1988
 
1989
+ return id
2002
1990
  }
2003
1991
 
2004
1992
  override async tagGroupDelete (
@@ -2020,7 +2008,7 @@ class PuppetService extends PUPPET.Puppet {
2020
2008
  override async tagTagAdd (
2021
2009
  tagName: string,
2022
2010
  tagGroupId?: string,
2023
- ): Promise<PUPPET.payloads.Tag | void> {
2011
+ ): Promise<string | void> {
2024
2012
  log.verbose('PuppetService', 'tagTagAdd(%s, %s)', tagName, tagGroupId)
2025
2013
 
2026
2014
  const request = new grpcPuppet.TagTagAddRequest()
@@ -2035,37 +2023,18 @@ class PuppetService extends PUPPET.Puppet {
2035
2023
  .bind(this.grpcManager.client),
2036
2024
  )(request)
2037
2025
 
2038
- const grpcPayload = result.getPayload()
2039
- const id = grpcPayload?.getId()
2040
- const name = grpcPayload?.getName()
2041
- const groupId = grpcPayload?.getGroupId()
2042
- const type = grpcPayload?.getType()
2043
-
2044
- if (id && name && (typeof type !== 'undefined')) {
2045
- const payload: PUPPET.payloads.Tag = {
2046
- id,
2047
- name,
2048
- groupId,
2049
- type,
2050
- }
2051
- return payload
2052
- }
2026
+ const id = result.getTagId()
2053
2027
 
2028
+ return id
2054
2029
  }
2055
2030
 
2056
2031
  override async tagTagDelete (
2057
- tag: TagIdentifier,
2032
+ tagId: string,
2058
2033
  ): Promise<void> {
2059
- log.verbose('PuppetService', 'tagTagDelete(%s)', JSON.stringify(tag))
2034
+ log.verbose('PuppetService', 'tagTagDelete(%s)', tagId)
2060
2035
 
2061
2036
  const request = new grpcPuppet.TagTagDeleteRequest()
2062
- const tagProb = new grpcPuppet.TagIdentifier()
2063
-
2064
- tag.groupId && tagProb.setGroupId(tag.groupId)
2065
- tagProb.setId(tag.id)
2066
- request.setTag(tagProb)
2067
-
2068
- request.setTag(tagProb)
2037
+ request.setTagId(tagId)
2069
2038
 
2070
2039
  await util.promisify(
2071
2040
  this.grpcManager.client.tagTagDelete
@@ -2074,7 +2043,7 @@ class PuppetService extends PUPPET.Puppet {
2074
2043
 
2075
2044
  }
2076
2045
 
2077
- override async tagGroupList (): Promise<PUPPET.payloads.TagGroup[]> {
2046
+ override async tagGroupList (): Promise<string[]> {
2078
2047
  log.verbose('PuppetService', 'tagGroupList()')
2079
2048
 
2080
2049
  const request = new grpcPuppet.TagGroupListRequest()
@@ -2084,19 +2053,13 @@ class PuppetService extends PUPPET.Puppet {
2084
2053
  .bind(this.grpcManager.client),
2085
2054
  )(request)
2086
2055
 
2087
- const grpcPayloads = result.getPayloadsList()
2088
- const payloads: PUPPET.payloads.TagGroup[] = grpcPayloads.map(payload => {
2089
- return {
2090
- id: payload.getId(),
2091
- name: payload.getName(),
2092
- } as PUPPET.payloads.TagGroup
2093
- })
2094
- return payloads
2056
+ const groupIds = result.getTagGroupIdsList()
2057
+ return groupIds
2095
2058
  }
2096
2059
 
2097
2060
  override async tagGroupTagList (
2098
2061
  tagGroupId?: string,
2099
- ): Promise<PUPPET.payloads.Tag[]> {
2062
+ ): Promise<string[]> {
2100
2063
  log.verbose('PuppetService', 'tagGroupTagList(%s)', tagGroupId)
2101
2064
 
2102
2065
  const request = new grpcPuppet.TagGroupTagListRequest()
@@ -2109,20 +2072,12 @@ class PuppetService extends PUPPET.Puppet {
2109
2072
  .bind(this.grpcManager.client),
2110
2073
  )(request)
2111
2074
 
2112
- const grpcPayloads = result.getPayloadsList()
2113
- const payloads: PUPPET.payloads.Tag[] = grpcPayloads.map(payload => {
2114
- return {
2115
- id: payload.getId(),
2116
- name: payload.getName(),
2117
- groupId: payload.getGroupId(),
2118
- type: payload.getType(),
2119
- } as PUPPET.payloads.Tag
2120
- })
2121
- return payloads
2075
+ const tagIds = result.getTagIdsList()
2076
+ return tagIds
2122
2077
  }
2123
2078
 
2124
2079
  override async tagTagList (
2125
- ): Promise<PUPPET.payloads.Tag[]> {
2080
+ ): Promise<string[]> {
2126
2081
  log.verbose('PuppetService', 'tagTagList()')
2127
2082
 
2128
2083
  const request = new grpcPuppet.TagTagListRequest()
@@ -2132,21 +2087,13 @@ class PuppetService extends PUPPET.Puppet {
2132
2087
  .bind(this.grpcManager.client),
2133
2088
  )(request)
2134
2089
 
2135
- const grpcPayloads = result.getPayloadsList()
2136
- const payloads: PUPPET.payloads.Tag[] = grpcPayloads.map(payload => {
2137
- return {
2138
- id: payload.getId(),
2139
- name: payload.getName(),
2140
- groupId: payload.getGroupId(),
2141
- type: payload.getType(),
2142
- } as PUPPET.payloads.Tag
2143
- })
2144
- return payloads
2090
+ const tagIds = result.getTagIdsList()
2091
+ return tagIds
2145
2092
  }
2146
2093
 
2147
2094
  override async tagContactTagList (
2148
2095
  contactId: string,
2149
- ): Promise<PUPPET.payloads.Tag[]> {
2096
+ ): Promise<string[]> {
2150
2097
  log.verbose('PuppetService', 'tagContactTagList(%s)', contactId)
2151
2098
 
2152
2099
  const request = new grpcPuppet.TagContactTagListRequest()
@@ -2157,37 +2104,94 @@ class PuppetService extends PUPPET.Puppet {
2157
2104
  .bind(this.grpcManager.client),
2158
2105
  )(request)
2159
2106
 
2160
- const grpcPayloads = result.getPayloadsList()
2161
- const payloads: PUPPET.payloads.Tag[] = grpcPayloads.map(payload => {
2162
- return {
2163
- id: payload.getId(),
2164
- name: payload.getName(),
2165
- groupId: payload.getGroupId(),
2166
- type: payload.getType(),
2167
- } as PUPPET.payloads.Tag
2168
- })
2169
- return payloads
2107
+ const tagIds = result.getTagIdsList()
2108
+ return tagIds
2170
2109
  }
2171
2110
 
2172
2111
  override async tagTagContactList (
2173
- tag: TagIdentifier,
2112
+ tagId: string,
2174
2113
  ): Promise<string[]> {
2175
- log.verbose('PuppetService', 'tagTagContactList(%s)', JSON.stringify(tag))
2114
+ log.verbose('PuppetService', 'tagTagContactList(%s)', tagId)
2176
2115
 
2177
2116
  const request = new grpcPuppet.TagTagContactListRequest()
2178
- const tagProb = new grpcPuppet.TagIdentifier()
2179
-
2180
- tag.groupId && tagProb.setGroupId(tag.groupId)
2181
- tagProb.setId(tag.id)
2182
- request.setTag(tagProb)
2117
+ request.setTagId(tagId)
2183
2118
 
2184
2119
  const result = await util.promisify(
2185
2120
  this.grpcManager.client.tagTagContactList
2186
2121
  .bind(this.grpcManager.client),
2187
2122
  )(request)
2188
2123
 
2189
- const payloads = result.getPayloadsList()
2190
- return payloads
2124
+ const contactIds = result.getContactIdsList()
2125
+ return contactIds
2126
+ }
2127
+
2128
+ override async tagGroupPayloadPuppet (id: string): Promise<PUPPET.payloads.TagGroup> {
2129
+ log.verbose('PuppetService', 'tagGroupPayload(%s)', id)
2130
+
2131
+ const cachedPayload = await this._payloadStore.tagGroup?.get(id)
2132
+ if (cachedPayload) {
2133
+ log.silly('PuppetService', 'tagGroupPayload(%s) cache HIT', id)
2134
+ return cachedPayload
2135
+ }
2136
+
2137
+ const request = new grpcPuppet.TagGroupPayloadRequest()
2138
+ request.setGroupId(id)
2139
+
2140
+ const response = await util.promisify(
2141
+ this.grpcManager.client.tagGroupPayload
2142
+ .bind(this.grpcManager.client),
2143
+ )(request)
2144
+ const grpcPayload = response.getPayload()
2145
+
2146
+ if (!grpcPayload) {
2147
+ throw new Error(`tagGroup ${id} got no payload!`)
2148
+ }
2149
+
2150
+ const payload: PUPPET.payloads.TagGroup = {
2151
+ id: grpcPayload.getId(),
2152
+ name: grpcPayload.getName(),
2153
+ type: grpcPayload.getType(),
2154
+ }
2155
+
2156
+ await this._payloadStore.tagGroup?.set(id, payload)
2157
+ log.silly('PuppetService', 'tagGroupPayloadPuppet(%s) cache SET', id)
2158
+
2159
+ return payload
2160
+ }
2161
+
2162
+ override async tagPayloadPuppet (tagId: string): Promise<PUPPET.payloads.Tag> {
2163
+ log.verbose('PuppetService', 'tagPayloadPuppet(%s)', tagId)
2164
+
2165
+ const cachedPayload = await this._payloadStore.tag?.get(tagId)
2166
+ if (cachedPayload) {
2167
+ log.silly('PuppetService', 'tagPayloadPuppet(%s) cache HIT', tagId)
2168
+ return cachedPayload
2169
+ }
2170
+
2171
+ const request = new grpcPuppet.TagPayloadRequest()
2172
+ request.setTagId(tagId)
2173
+
2174
+ const response = await util.promisify(
2175
+ this.grpcManager.client.tagPayload
2176
+ .bind(this.grpcManager.client),
2177
+ )(request)
2178
+ const grpcPayload = response.getPayload()
2179
+
2180
+ if (!grpcPayload) {
2181
+ throw new Error(`tag ${tagId} got no payload!`)
2182
+ }
2183
+
2184
+ const payload: PUPPET.payloads.Tag = {
2185
+ id: grpcPayload.getId(),
2186
+ name: grpcPayload.getName(),
2187
+ groupId: grpcPayload.getGroupId(),
2188
+ type: grpcPayload.getType(),
2189
+ }
2190
+
2191
+ await this._payloadStore.tag?.set(tagId, payload)
2192
+ log.silly('PuppetService', 'tagPayloadPuppet(%s) cache SET', tagId)
2193
+
2194
+ return payload
2191
2195
  }
2192
2196
 
2193
2197
  /**
package/src/config.ts CHANGED
@@ -12,6 +12,7 @@ import {
12
12
  } from '@juzi/wechaty-grpc'
13
13
 
14
14
  const VERSION = packageJson.version || '0.0.0'
15
+ export const FOUR_PER_EM_SPACE = String.fromCharCode(0x2005)
15
16
 
16
17
  const envVars = {
17
18
  ...rootEnvVars,
@@ -4,7 +4,7 @@
4
4
  import type { PackageJson } from 'type-fest'
5
5
  export const packageJson: PackageJson = {
6
6
  "name": "@juzi/wechaty-puppet-service",
7
- "version": "1.0.18",
7
+ "version": "1.0.21",
8
8
  "description": "Puppet Service for Wechaty",
9
9
  "type": "module",
10
10
  "exports": {
@@ -55,6 +55,7 @@ export const packageJson: PackageJson = {
55
55
  "@chatie/eslint-config": "^1.0.4",
56
56
  "@chatie/semver": "^0.4.7",
57
57
  "@chatie/tsconfig": "^4.6.3",
58
+ "@juzi/wechaty-puppet-mock": "^1.0.1",
58
59
  "@types/google-protobuf": "^3.15.5",
59
60
  "@types/lru-cache": "^7.5.0",
60
61
  "@types/semver": "^7.3.9",
@@ -65,14 +66,14 @@ export const packageJson: PackageJson = {
65
66
  "temp": "^0.9.4",
66
67
  "typed-emitter": "^1.5.0-from-event",
67
68
  "utility-types": "^3.10.0",
68
- "@juzi/wechaty-puppet-mock": "^1.0.1",
69
69
  "why-is-node-running": "^2.2.1"
70
70
  },
71
71
  "peerDependencies": {
72
- "@juzi/wechaty-puppet": "^1.0.15"
72
+ "@juzi/wechaty-puppet": "^1.0.28"
73
73
  },
74
74
  "dependencies": {
75
- "@juzi/wechaty-grpc": "^1.0.12",
75
+ "@juzi/wechaty-grpc": "^1.0.17",
76
+ "@juzi/wechaty-redux": "^1.0.1",
76
77
  "clone-class": "^1.1.1",
77
78
  "ducks": "^1.0.2",
78
79
  "file-box": "^1.5.5",
@@ -83,7 +84,6 @@ export const packageJson: PackageJson = {
83
84
  "semver": "^7.3.5",
84
85
  "stronger-typed-streams": "^0.2.0",
85
86
  "uuid": "^8.3.2",
86
- "@juzi/wechaty-redux": "^1.0.1",
87
87
  "wechaty-token": "^1.0.6"
88
88
  },
89
89
  "publishConfig": {
@@ -273,6 +273,20 @@ class EventStreamManager {
273
273
  this.offCallbackList.push(off)
274
274
  break
275
275
  }
276
+ case 'tag': {
277
+ const listener = (payload: PUPPET.payloads.EventTag) => this.grpcEmit(grpcPuppet.EventType.EVENT_TYPE_TAG, payload)
278
+ this.puppet.on('tag', listener)
279
+ const off = () => this.puppet.off('tag', listener)
280
+ this.offCallbackList.push(off)
281
+ break
282
+ }
283
+ case 'tag-group': {
284
+ const listener = (payload: PUPPET.payloads.EventTagGroup) => this.grpcEmit(grpcPuppet.EventType.EVENT_TYPE_TAG_GROUP, payload)
285
+ this.puppet.on('tag-group', listener)
286
+ const off = () => this.puppet.off('tag-group', listener)
287
+ this.offCallbackList.push(off)
288
+ break
289
+ }
276
290
  case 'reset':
277
291
  // the `reset` event should be dealed internally, should not send out
278
292
  break
@@ -1507,16 +1507,10 @@ function puppetImplementation (
1507
1507
  log.verbose('PuppetServiceImpl', 'tagContactTagAdd()')
1508
1508
 
1509
1509
  try {
1510
- const tagsProb = call.request.getTagsList()
1510
+ const tagIds = call.request.getTagIdsList()
1511
1511
  const contactIds = call.request.getContactIdsList()
1512
- const tags = tagsProb.map(tagProb => {
1513
- return {
1514
- id: tagProb.getId(),
1515
- groupId: tagProb.getGroupId(),
1516
- }
1517
- })
1518
1512
 
1519
- await puppet.tagContactTagAdd(tags, contactIds)
1513
+ await puppet.tagContactTagAdd(tagIds, contactIds)
1520
1514
 
1521
1515
  return callback(null, new grpcPuppet.TagContactTagAddResponse())
1522
1516
  } catch (e) {
@@ -1528,16 +1522,10 @@ function puppetImplementation (
1528
1522
  log.verbose('PuppetServiceImpl', 'tagContactTagRemove()')
1529
1523
 
1530
1524
  try {
1531
- const tagsProb = call.request.getTagsList()
1525
+ const tagIds = call.request.getTagIdsList()
1532
1526
  const contactIds = call.request.getContactIdsList()
1533
- const tags = tagsProb.map(tagProb => {
1534
- return {
1535
- id: tagProb.getId(),
1536
- groupId: tagProb.getGroupId(),
1537
- }
1538
- })
1539
1527
 
1540
- await puppet.tagContactTagRemove(tags, contactIds)
1528
+ await puppet.tagContactTagRemove(tagIds, contactIds)
1541
1529
 
1542
1530
  return callback(null, new grpcPuppet.TagContactTagRemoveResponse())
1543
1531
  } catch (e) {
@@ -1552,13 +1540,11 @@ function puppetImplementation (
1552
1540
  const tagGroupName = call.request.getTagGroupName()
1553
1541
 
1554
1542
  const result = await puppet.tagGroupAdd(tagGroupName)
1555
- const payload = new grpcPuppet.TagGroupPayload()
1543
+
1556
1544
  const response = new grpcPuppet.TagGroupAddResponse()
1557
1545
 
1558
1546
  if (result) {
1559
- payload.setId(result.id)
1560
- payload.setName(result.name)
1561
- response.setPayload(payload)
1547
+ response.setTagGroupId(result)
1562
1548
  }
1563
1549
 
1564
1550
  return callback(null, response)
@@ -1589,17 +1575,10 @@ function puppetImplementation (
1589
1575
  const tagName = call.request.getTagName()
1590
1576
 
1591
1577
  const result = await puppet.tagTagAdd(tagName, tagGroupId)
1592
- const payload = new grpcPuppet.TagPayload()
1593
1578
  const response = new grpcPuppet.TagTagAddResponse()
1594
1579
 
1595
1580
  if (result) {
1596
- payload.setId(result.id)
1597
- payload.setName(result.name)
1598
- payload.setType(result.type)
1599
- if (result.groupId) {
1600
- payload.setGroupId(result.groupId)
1601
- }
1602
- response.setPayload(payload)
1581
+ response.setTagId(result)
1603
1582
  }
1604
1583
 
1605
1584
  return callback(null, response)
@@ -1612,11 +1591,9 @@ function puppetImplementation (
1612
1591
  log.verbose('PuppetServiceImpl', 'tagTagDelete()')
1613
1592
 
1614
1593
  try {
1615
- const tagProb = call.request.getTag()
1616
- const id = tagProb?.getId()!
1617
- const groupId = tagProb?.getGroupId()
1594
+ const tagId = call.request.getTagId()
1618
1595
 
1619
- await puppet.tagTagDelete({ id, groupId })
1596
+ await puppet.tagTagDelete(tagId)
1620
1597
 
1621
1598
  return callback(null, new grpcPuppet.TagTagDeleteResponse())
1622
1599
  } catch (e) {
@@ -1630,14 +1607,8 @@ function puppetImplementation (
1630
1607
 
1631
1608
  try {
1632
1609
  const result = await puppet.tagGroupList()
1633
- const payloads = result.map(tagGroup => {
1634
- const payload = new grpcPuppet.TagGroupPayload()
1635
- payload.setId(tagGroup.id)
1636
- payload.setName(tagGroup.name)
1637
- return payload
1638
- })
1639
1610
  const response = new grpcPuppet.TagGroupListResponse()
1640
- response.setPayloadsList(payloads)
1611
+ response.setTagGroupIdsList(result)
1641
1612
 
1642
1613
  return callback(null, response)
1643
1614
  } catch (e) {
@@ -1652,18 +1623,9 @@ function puppetImplementation (
1652
1623
  const tagGroupId = call.request.getTagGroupId()
1653
1624
 
1654
1625
  const result = await puppet.tagGroupTagList(tagGroupId)
1655
- const payloads = result.map(tag => {
1656
- const payload = new grpcPuppet.TagPayload()
1657
- payload.setId(tag.id)
1658
- payload.setName(tag.name)
1659
- payload.setType(tag.type)
1660
- if (tag.groupId) {
1661
- payload.setGroupId(tag.groupId)
1662
- }
1663
- return payload
1664
- })
1626
+
1665
1627
  const response = new grpcPuppet.TagGroupTagListResponse()
1666
- response.setPayloadsList(payloads)
1628
+ response.setTagIdsList(result)
1667
1629
 
1668
1630
  return callback(null, response)
1669
1631
  } catch (e) {
@@ -1677,18 +1639,9 @@ function puppetImplementation (
1677
1639
 
1678
1640
  try {
1679
1641
  const result = await puppet.tagTagList()
1680
- const payloads = result.map(tag => {
1681
- const payload = new grpcPuppet.TagPayload()
1682
- payload.setId(tag.id)
1683
- payload.setName(tag.name)
1684
- payload.setType(tag.type)
1685
- if (tag.groupId) {
1686
- payload.setGroupId(tag.groupId)
1687
- }
1688
- return payload
1689
- })
1642
+
1690
1643
  const response = new grpcPuppet.TagTagListResponse()
1691
- response.setPayloadsList(payloads)
1644
+ response.setTagIdsList(result)
1692
1645
 
1693
1646
  return callback(null, response)
1694
1647
  } catch (e) {
@@ -1703,18 +1656,9 @@ function puppetImplementation (
1703
1656
  const contactId = call.request.getContactId()
1704
1657
 
1705
1658
  const result = await puppet.tagContactTagList(contactId)
1706
- const payloads = result.map(tag => {
1707
- const payload = new grpcPuppet.TagPayload()
1708
- payload.setId(tag.id)
1709
- payload.setName(tag.name)
1710
- payload.setType(tag.type)
1711
- if (tag.groupId) {
1712
- payload.setGroupId(tag.groupId)
1713
- }
1714
- return payload
1715
- })
1659
+
1716
1660
  const response = new grpcPuppet.TagContactTagListResponse()
1717
- response.setPayloadsList(payloads)
1661
+ response.setTagIdsList(result)
1718
1662
 
1719
1663
  return callback(null, response)
1720
1664
  } catch (e) {
@@ -1726,14 +1670,12 @@ function puppetImplementation (
1726
1670
  log.verbose('PuppetServiceImpl', 'tagTagContactList()')
1727
1671
 
1728
1672
  try {
1729
- const tagProb = call.request.getTag()
1730
- const id = tagProb?.getId()!
1731
- const groupId = tagProb?.getGroupId()
1673
+ const tagId = call.request.getTagId()
1732
1674
 
1733
- const result = await puppet.tagTagContactList({ id, groupId })
1675
+ const result = await puppet.tagTagContactList(tagId)
1734
1676
 
1735
1677
  const response = new grpcPuppet.TagTagContactListResponse()
1736
- response.setPayloadsList(result)
1678
+ response.setContactIdsList(result)
1737
1679
 
1738
1680
  return callback(null, response)
1739
1681
  } catch (e) {
@@ -1741,6 +1683,51 @@ function puppetImplementation (
1741
1683
  }
1742
1684
  },
1743
1685
 
1686
+ tagGroupPayload: async (call, callback) => {
1687
+ log.verbose('PuppetServiceImpl', 'tagGroupPayload()')
1688
+
1689
+ try {
1690
+ const id = call.request.getGroupId()
1691
+
1692
+ const result = await puppet.tagGroupPayloadPuppet(id)
1693
+ const response = new grpcPuppet.TagGroupPayloadResponse()
1694
+ const payload = new grpcPuppet.TagGroupPayload()
1695
+ payload.setId(result.id)
1696
+ payload.setName(result.name)
1697
+ payload.setType(result.type)
1698
+ response.setPayload(payload)
1699
+
1700
+ return callback(null, response)
1701
+
1702
+ } catch (e) {
1703
+ return grpcError('tagTagContactList', e, callback)
1704
+ }
1705
+ },
1706
+
1707
+ tagPayload: async (call, callback) => {
1708
+ log.verbose('PuppetServiceImpl', 'tagPayload()')
1709
+
1710
+ try {
1711
+ const tagId = call.request.getTagId()
1712
+
1713
+ const result = await puppet.tagPayloadPuppet(tagId)
1714
+ const response = new grpcPuppet.TagPayloadResponse()
1715
+ const payload = new grpcPuppet.TagPayload()
1716
+ payload.setId(result.id)
1717
+ payload.setName(result.name)
1718
+ payload.setType(result.type)
1719
+ if (result.groupId) {
1720
+ payload.setGroupId(result.groupId)
1721
+ }
1722
+ response.setPayload(payload)
1723
+
1724
+ return callback(null, response)
1725
+
1726
+ } catch (e) {
1727
+ return grpcError('tagTagContactList', e, callback)
1728
+ }
1729
+ },
1730
+
1744
1731
  version: async (call, callback) => {
1745
1732
  log.verbose('PuppetServiceImpl', 'version() v%s', puppet.version())
1746
1733
  void call