@live-change/user-service 0.2.30 → 0.2.33

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.
@@ -107,6 +107,18 @@ definition.processor(function(service, app) {
107
107
  extendedIdentifiers[key+'Type'] = contactProperty[key+'Type']
108
108
  extendedIdentifiers[key] = contactProperty[key]
109
109
  }
110
+ await service.trigger({
111
+ type: 'contactOrUserOwned' + modelName + 'Moved',
112
+ from: {
113
+ contactOrUserType: contactType,
114
+ contactOrUser: contact
115
+ },
116
+ to: {
117
+ contactOrUserType: 'user_User',
118
+ contactOrUser: user
119
+ },
120
+ ...extendedIdentifiers
121
+ })
110
122
  emit({
111
123
  type: transferEventName,
112
124
  from: {
@@ -120,7 +132,7 @@ definition.processor(function(service, app) {
120
132
  ...extendedIdentifiers
121
133
  }
122
134
  })
123
- }
135
+ } // else ignore
124
136
  }
125
137
  }
126
138
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@live-change/user-service",
3
- "version": "0.2.30",
3
+ "version": "0.2.33",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -21,9 +21,9 @@
21
21
  "url": "https://www.viamage.com/"
22
22
  },
23
23
  "dependencies": {
24
- "@live-change/framework": "0.6.4",
25
- "@live-change/relations-plugin": "0.6.3",
24
+ "@live-change/framework": "0.6.5",
25
+ "@live-change/relations-plugin": "0.6.5",
26
26
  "pluralize": "8.0.0"
27
27
  },
28
- "gitHead": "0a3acfcbb3a720c3e2f20bb3c9dc80a0a1aaceaa"
28
+ "gitHead": "8918e5113c031c3d9766df32283de7fb6421e0be"
29
29
  }
@@ -10,7 +10,7 @@ definition.processor(function(service, app) {
10
10
  for(let modelName in service.models) {
11
11
  const model = service.models[modelName]
12
12
  if(model.sessionOrUserItem) {
13
- if (model.properties.owner) throw new Error('user property already exists!!!')
13
+ if (model.properties.sessionOrUser) throw new Error('user property already exists!!!')
14
14
  const originalModelProperties = { ...model.properties }
15
15
  const modelProperties = Object.keys(model.properties)
16
16
  const defaults = App.utils.generateDefault(model.properties)
@@ -26,8 +26,13 @@ definition.processor(function(service, app) {
26
26
  //console.log("USER ITEM", model)
27
27
 
28
28
  if(model.itemOfAny) throw new Error("model " + modelName + " already have owner")
29
+
30
+ const extendedWith = config.extendedWith
31
+ ? (Array.isArray(config.extendedWith) ? config.extendedWith : [config.extendedWith])
32
+ : []
29
33
  model.itemOfAny = {
30
- ...config
34
+ ...config,
35
+ to: ['sessionOrUser', ...extendedWith]
31
36
  }
32
37
 
33
38
  /// TODO: merge on signedIn trigger
@@ -43,7 +48,7 @@ definition.processor(function(service, app) {
43
48
  properties: App.rangeProperties,
44
49
  daoPath(range, { client, context }) {
45
50
  const owner = client.user ? ['user_User', client.user] : ['session_Session', client.session]
46
- const path = modelRuntime().indexRangePath('byOwner', owner, range )
51
+ const path = modelRuntime().indexRangePath('bySessionOrUser', owner, range )
47
52
  return path
48
53
  }
49
54
  })
@@ -58,14 +63,14 @@ definition.processor(function(service, app) {
58
63
  properties: App.rangeProperties,
59
64
  daoPath(range, { client, context }) {
60
65
  const owner = client.user ? ['user_User', client.user] : ['session_Session', client.session]
61
- return modelRuntime().sortedIndexRangePath('byOwner' + sortFieldUc, owner, App.extractRange(range))
66
+ return modelRuntime().sortedIndexRangePath('bySsessionOrUser' + sortFieldUc, owner, App.extractRange(range))
62
67
  }
63
68
  })
64
69
  }
65
70
  }
66
71
 
67
72
  if(config.ownerCreateAccess || config.ownerWriteAccess) {
68
- const eventName = 'ownerOwned' + modelName + 'Created'
73
+ const eventName = 'sessionOrUserOwned' + modelName + 'Created'
69
74
  const actionName = 'createMy' + modelName
70
75
  service.actions[actionName] = new ActionDefinition({
71
76
  name: actionName,
@@ -84,11 +89,11 @@ definition.processor(function(service, app) {
84
89
  const entity = await modelRuntime().get(id)
85
90
  if(entity) throw 'exists'
86
91
  const identifiers = client.user ? {
87
- ownerType: 'user_User',
88
- owner: client.user,
92
+ sessionOrUserType: 'user_User',
93
+ sessionOrUser: client.user,
89
94
  } : {
90
- ownerType: 'session_Session',
91
- owner: client.session,
95
+ sessionOrUserType: 'session_Session',
96
+ sessionOrUser: client.session,
92
97
  }
93
98
  emit({
94
99
  type: eventName,
@@ -101,7 +106,7 @@ definition.processor(function(service, app) {
101
106
  })
102
107
  }
103
108
  if(config.ownerUpdateAccess || config.ownerWriteAccess) {
104
- const eventName = 'ownerOwned' + modelName + 'Updated'
109
+ const eventName = 'sessionOrUserOwned' + modelName + 'Updated'
105
110
  const actionName = 'updateMy' + modelName
106
111
  service.actions[actionName] = new ActionDefinition({
107
112
  name: actionName,
@@ -119,11 +124,11 @@ definition.processor(function(service, app) {
119
124
  async execute(properties, { client, service }, emit) {
120
125
  const entity = await modelRuntime().get(properties[modelPropertyName])
121
126
  if(!entity) throw 'not_found'
122
- if(entity.ownerType == 'user_User') {
123
- if(entity.owner != client.user) throw 'not_authorized'
127
+ if(entity.sessionOrUserType == 'user_User') {
128
+ if(entity.sessionOrUser != client.user) throw 'not_authorized'
124
129
  }
125
- if(entity.ownerType == 'session_Session') {
126
- if(entity.owner != client.session) throw 'not_authorized'
130
+ if(entity.sessionOrUserType == 'session_Session') {
131
+ if(entity.sessionOrUser != client.session) throw 'not_authorized'
127
132
  }
128
133
  let updateObject = {}
129
134
  for(const propertyName of writeableProperties) {
@@ -134,11 +139,11 @@ definition.processor(function(service, app) {
134
139
  const merged = App.utils.mergeDeep({}, entity, updateObject)
135
140
  await App.validation.validate(merged, validators, { source: action, action, service, app, client })
136
141
  const identifiers = client.user ? {
137
- ownerType: 'user_User',
138
- owner: client.user,
142
+ sessionOrUserType: 'user_User',
143
+ sessionOrUser: client.user,
139
144
  } : {
140
- ownerType: 'session_Session',
141
- owner: client.session,
145
+ sessionOrUserType: 'session_Session',
146
+ sessionOrUser: client.session,
142
147
  }
143
148
  emit({
144
149
  type: eventName,
@@ -168,18 +173,18 @@ definition.processor(function(service, app) {
168
173
  async execute(properties, { client, service }, emit) {
169
174
  const entity = await modelRuntime().get(properties[modelPropertyName])
170
175
  if(!entity) throw 'not_found'
171
- if(entity.ownerType == 'user_User') {
172
- if(entity.owner != client.user) throw 'not_authorized'
176
+ if(entity.sessionOrUserType == 'user_User') {
177
+ if(entity.sessionOrUser != client.user) throw 'not_authorized'
173
178
  }
174
- if(entity.ownerType == 'session_Session') {
175
- if(entity.owner != client.session) throw 'not_authorized'
179
+ if(entity.sessionOrUserType == 'session_Session') {
180
+ if(entity.sessionOrUser != client.session) throw 'not_authorized'
176
181
  }
177
182
  const identifiers = client.user ? {
178
- ownerType: 'user_User',
179
- owner: client.user,
183
+ sessionOrUserType: 'user_User',
184
+ sessionOrUser: client.user,
180
185
  } : {
181
- ownerType: 'session_Session',
182
- owner: client.session,
186
+ sessionOrUserType: 'session_Session',
187
+ sessionOrUser: client.session,
183
188
  }
184
189
  emit({
185
190
  type: eventName,