@opra/sqb 1.0.0-alpha.4 → 1.0.0-alpha.5

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.
@@ -14,7 +14,7 @@ var SQBAdapter;
14
14
  const entityMetadata = connect_1.EntityMetadata.get(dataType.ctor);
15
15
  if (!entityMetadata)
16
16
  throw new Error(`Type class "${dataType.ctor}" is not an SQB entity`);
17
- const { compositionOptions } = operation;
17
+ const controller = operation.owner;
18
18
  switch (operation.composition) {
19
19
  case 'Entity.Create': {
20
20
  const data = await context.getBody();
@@ -24,7 +24,8 @@ var SQBAdapter;
24
24
  return { method: 'create', data, options };
25
25
  }
26
26
  case 'Entity.Delete': {
27
- const key = context.pathParams[compositionOptions.keyParameter];
27
+ const keyParam = operation.parameters.find(p => p.keyParam) || controller.parameters.find(p => p.keyParam);
28
+ const key = keyParam && context.pathParams[String(keyParam.name)];
28
29
  const options = {
29
30
  filter: SQBAdapter.parseFilter(context.queryParams.filter),
30
31
  };
@@ -48,7 +49,8 @@ var SQBAdapter;
48
49
  return { method: 'findMany', options };
49
50
  }
50
51
  case 'Entity.Get': {
51
- const key = context.pathParams[compositionOptions.keyParameter];
52
+ const keyParam = operation.parameters.find(p => p.keyParam) || controller.parameters.find(p => p.keyParam);
53
+ const key = keyParam && context.pathParams[String(keyParam.name)];
52
54
  const options = {
53
55
  projection: context.queryParams.projection,
54
56
  filter: SQBAdapter.parseFilter(context.queryParams.filter),
@@ -57,7 +59,8 @@ var SQBAdapter;
57
59
  }
58
60
  case 'Entity.Update': {
59
61
  const data = await context.getBody();
60
- const key = context.pathParams[compositionOptions.keyParameter];
62
+ const keyParam = operation.parameters.find(p => p.keyParam) || controller.parameters.find(p => p.keyParam);
63
+ const key = keyParam && context.pathParams[String(keyParam.name)];
61
64
  const options = {
62
65
  projection: context.queryParams.projection,
63
66
  filter: SQBAdapter.parseFilter(context.queryParams.filter),
@@ -83,7 +83,7 @@ class SqbEntityService extends core_1.ServiceBase {
83
83
  let validator = this._inputCodecs[operation];
84
84
  if (validator)
85
85
  return validator;
86
- const options = { projection: '*', ignoreReadonlyFields: true };
86
+ const options = { projection: '*' };
87
87
  if (operation === 'update')
88
88
  options.partial = 'deep';
89
89
  const dataType = this.dataType;
@@ -98,7 +98,7 @@ class SqbEntityService extends core_1.ServiceBase {
98
98
  let validator = this._outputCodecs[operation];
99
99
  if (validator)
100
100
  return validator;
101
- const options = { projection: '*', partial: 'deep', ignoreWriteonlyFields: true };
101
+ const options = { projection: '*', partial: 'deep' };
102
102
  const dataType = this.dataType;
103
103
  validator = dataType.generateCodec('decode', options);
104
104
  this._outputCodecs[operation] = validator;
@@ -10,7 +10,7 @@ export var SQBAdapter;
10
10
  const entityMetadata = EntityMetadata.get(dataType.ctor);
11
11
  if (!entityMetadata)
12
12
  throw new Error(`Type class "${dataType.ctor}" is not an SQB entity`);
13
- const { compositionOptions } = operation;
13
+ const controller = operation.owner;
14
14
  switch (operation.composition) {
15
15
  case 'Entity.Create': {
16
16
  const data = await context.getBody();
@@ -20,7 +20,8 @@ export var SQBAdapter;
20
20
  return { method: 'create', data, options };
21
21
  }
22
22
  case 'Entity.Delete': {
23
- const key = context.pathParams[compositionOptions.keyParameter];
23
+ const keyParam = operation.parameters.find(p => p.keyParam) || controller.parameters.find(p => p.keyParam);
24
+ const key = keyParam && context.pathParams[String(keyParam.name)];
24
25
  const options = {
25
26
  filter: SQBAdapter.parseFilter(context.queryParams.filter),
26
27
  };
@@ -44,7 +45,8 @@ export var SQBAdapter;
44
45
  return { method: 'findMany', options };
45
46
  }
46
47
  case 'Entity.Get': {
47
- const key = context.pathParams[compositionOptions.keyParameter];
48
+ const keyParam = operation.parameters.find(p => p.keyParam) || controller.parameters.find(p => p.keyParam);
49
+ const key = keyParam && context.pathParams[String(keyParam.name)];
48
50
  const options = {
49
51
  projection: context.queryParams.projection,
50
52
  filter: SQBAdapter.parseFilter(context.queryParams.filter),
@@ -53,7 +55,8 @@ export var SQBAdapter;
53
55
  }
54
56
  case 'Entity.Update': {
55
57
  const data = await context.getBody();
56
- const key = context.pathParams[compositionOptions.keyParameter];
58
+ const keyParam = operation.parameters.find(p => p.keyParam) || controller.parameters.find(p => p.keyParam);
59
+ const key = keyParam && context.pathParams[String(keyParam.name)];
57
60
  const options = {
58
61
  projection: context.queryParams.projection,
59
62
  filter: SQBAdapter.parseFilter(context.queryParams.filter),
@@ -80,7 +80,7 @@ export class SqbEntityService extends ServiceBase {
80
80
  let validator = this._inputCodecs[operation];
81
81
  if (validator)
82
82
  return validator;
83
- const options = { projection: '*', ignoreReadonlyFields: true };
83
+ const options = { projection: '*' };
84
84
  if (operation === 'update')
85
85
  options.partial = 'deep';
86
86
  const dataType = this.dataType;
@@ -95,7 +95,7 @@ export class SqbEntityService extends ServiceBase {
95
95
  let validator = this._outputCodecs[operation];
96
96
  if (validator)
97
97
  return validator;
98
- const options = { projection: '*', partial: 'deep', ignoreWriteonlyFields: true };
98
+ const options = { projection: '*', partial: 'deep' };
99
99
  const dataType = this.dataType;
100
100
  validator = dataType.generateCodec('decode', options);
101
101
  this._outputCodecs[operation] = validator;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opra/sqb",
3
- "version": "1.0.0-alpha.4",
3
+ "version": "1.0.0-alpha.5",
4
4
  "description": "Opra SQB adapter package",
5
5
  "author": "Panates",
6
6
  "license": "MIT",
@@ -35,7 +35,7 @@
35
35
  "ts-gems": "^3.4.0"
36
36
  },
37
37
  "peerDependencies": {
38
- "@opra/core": "^1.0.0-alpha.4",
38
+ "@opra/core": "^1.0.0-alpha.5",
39
39
  "@sqb/connect": ">= 4.10.6"
40
40
  },
41
41
  "type": "module",