@sofit/view-locale 1.104.0 → 1.105.0

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.
@@ -3,6 +3,7 @@ export interface IContext {
3
3
  label?: string;
4
4
  limit?: number;
5
5
  value?: string;
6
+ valids?: string[] | string;
6
7
  }
7
8
  export interface IValidationErrorItem {
8
9
  message: string;
package/dist/runner.d.ts CHANGED
@@ -10,4 +10,5 @@ export declare class Locale {
10
10
  raw(path: string, replaces?: IReplaces): string;
11
11
  joi(detail: IValidationErrorItem): string;
12
12
  private setJoiLabel;
13
+ private fitEnumValidOptions;
13
14
  }
package/dist/runner.js CHANGED
@@ -88,6 +88,17 @@ class Locale {
88
88
  if (detail.context.label === TRANSLATION_NOT_FOUND) {
89
89
  detail.context.label = detail.context.key;
90
90
  }
91
+ this.fitEnumValidOptions(detail);
92
+ }
93
+ }
94
+ fitEnumValidOptions(detail) {
95
+ if (detail.context && detail.context.valids && detail.context.key && detail.type === 'any.allowOnly') {
96
+ const tableName = detail.message.split('.')[0].replace('"', '');
97
+ if (tableName) {
98
+ detail.context.valids = Object.keys(TRANSLATIONS[tableName].enums[detail.context.key]).map(key => {
99
+ return this.reach(TRANSLATIONS[tableName].enums[detail.context.key][key], detail.context);
100
+ }).join(', ');
101
+ }
91
102
  }
92
103
  }
93
104
  }
@@ -40,6 +40,20 @@ export declare const fields: {
40
40
  es: string;
41
41
  };
42
42
  };
43
+ export declare const messages: {
44
+ supplier_must_be_rental: {
45
+ ptBR: string;
46
+ es: string;
47
+ };
48
+ forbidden_in_use_value: {
49
+ ptBR: string;
50
+ es: string;
51
+ };
52
+ leasing_contract_must_be_from_rental_agency: {
53
+ ptBR: string;
54
+ es: string;
55
+ };
56
+ };
43
57
  export declare const enums: {
44
58
  status: {
45
59
  available: {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.enums = exports.fields = exports.name = void 0;
3
+ exports.enums = exports.messages = exports.fields = exports.name = void 0;
4
4
  const entity_1 = require("../common/entity");
5
5
  exports.name = {
6
6
  ptBR: 'Veículo reserva',
@@ -25,6 +25,20 @@ exports.fields = Object.assign(Object.assign({}, entity_1.ENTITY_COMMON), { lice
25
25
  ptBR: 'Observação',
26
26
  es: 'Observación'
27
27
  } });
28
+ exports.messages = {
29
+ supplier_must_be_rental: {
30
+ ptBR: 'O fornecedor informado como locadora deve ser do tipo “Locadora”.',
31
+ es: 'El proveedor informado como alquiler debe ser del tipo ”Alquiler”.'
32
+ },
33
+ forbidden_in_use_value: {
34
+ ptBR: 'Não é possível utilizar a situação “Em uso”, pois ela é definida automaticamente pelo sistema.',
35
+ es: 'Npo es posible utilizar la situación "En uso", ya que el sistema la define automáticamente.'
36
+ },
37
+ leasing_contract_must_be_from_rental_agency: {
38
+ ptBR: 'O contrato de locação deve pertencer à locadora informada.',
39
+ es: 'El contracto de locación debe pertenecer a el alquiler informado.'
40
+ }
41
+ };
28
42
  exports.enums = {
29
43
  status: {
30
44
  'available': {
package/junit.xml CHANGED
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <testsuites name="Sofit view locale tests" tests="8" failures="0" time="3.351">
3
- <testsuite name="Vehicle locale test" errors="0" failures="0" skipped="0" timestamp="2020-07-20T18:37:50" time="2.666" tests="4">
2
+ <testsuites name="Sofit view locale tests" tests="8" failures="0" time="2.931">
3
+ <testsuite name="Vehicle locale test" errors="0" failures="0" skipped="0" timestamp="2020-07-21T14:54:04" time="2.21" tests="4">
4
4
  <testcase classname="Vehicle locale test Should get translations with reach" name="Vehicle locale test Should get translations with reach" time="0.002">
5
5
  </testcase>
6
6
  <testcase classname="Vehicle locale test Should replace correctly with reach" name="Vehicle locale test Should replace correctly with reach" time="0">
@@ -10,14 +10,14 @@
10
10
  <testcase classname="Vehicle locale test Should replace correctly with raw" name="Vehicle locale test Should replace correctly with raw" time="0">
11
11
  </testcase>
12
12
  </testsuite>
13
- <testsuite name="Joi tests" errors="0" failures="0" skipped="0" timestamp="2020-07-20T18:37:50" time="2.678" tests="4">
13
+ <testsuite name="Joi tests" errors="0" failures="0" skipped="0" timestamp="2020-07-21T14:54:04" time="2.217" tests="4">
14
14
  <testcase classname="Joi tests should return default message" name="Joi tests should return default message" time="0.002">
15
15
  </testcase>
16
- <testcase classname="Joi tests should return non label message" name="Joi tests should return non label message" time="0.001">
16
+ <testcase classname="Joi tests should return non label message" name="Joi tests should return non label message" time="0">
17
17
  </testcase>
18
- <testcase classname="Joi tests should return translated label message" name="Joi tests should return translated label message" time="0">
18
+ <testcase classname="Joi tests should return translated label message" name="Joi tests should return translated label message" time="0.001">
19
19
  </testcase>
20
- <testcase classname="Joi tests should return translated label index" name="Joi tests should return translated label index" time="0.001">
20
+ <testcase classname="Joi tests should return translated label index" name="Joi tests should return translated label index" time="0">
21
21
  </testcase>
22
22
  </testsuite>
23
23
  </testsuites>
@@ -3,6 +3,7 @@ export interface IContext {
3
3
  label?: string;
4
4
  limit?: number;
5
5
  value?: string;
6
+ valids?: string[] | string;
6
7
  }
7
8
 
8
9
  export interface IValidationErrorItem {
package/lib/runner.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { IValidationErrorItem } from './joi/joi.interface';
1
+ import { IContext, IValidationErrorItem } from './joi/joi.interface';
2
2
  import { IAccessKey, LANGUAGES } from './languages';
3
3
  import * as TRANSLATIONS from './translations';
4
4
 
@@ -114,6 +114,38 @@ export class Locale {
114
114
 
115
115
  detail.context.label = detail.context.key;
116
116
  }
117
+
118
+ this.fitEnumValidOptions(detail);
119
+ }
120
+ }
121
+
122
+ /*
123
+ Criar teste para esta função abaixo recebendo este detail:
124
+ detail {
125
+ message: '"backup_vehicle.fields.status" must be one of [available, in_use, inactive]',
126
+ path: [ 'status' ],
127
+ type: 'any.allowOnly',
128
+ context: {
129
+ value: 'Disponível',
130
+ valids: [ 'available', 'in_use', 'inactive' ],
131
+ key: 'status',
132
+ label: 'Situação'
133
+ }
134
+ }
135
+ */
136
+ private fitEnumValidOptions(detail: IValidationErrorItem) {
137
+
138
+ if (detail.context && detail.context.valids && detail.context.key && detail.type === 'any.allowOnly') {
139
+
140
+ const tableName = detail.message.split('.')[0].replace('"', '');
141
+
142
+ if (tableName) {
143
+
144
+ detail.context.valids = Object.keys(TRANSLATIONS[tableName].enums[detail.context.key]).map(key => {
145
+
146
+ return this.reach(TRANSLATIONS[tableName].enums[(detail.context as IContext).key][key], detail.context as IReplaces);
147
+ }).join(', ');
148
+ }
117
149
  }
118
150
  }
119
151
  }
@@ -33,6 +33,21 @@ export const fields = {
33
33
  }
34
34
  };
35
35
 
36
+ export const messages = {
37
+ supplier_must_be_rental: {
38
+ ptBR: 'O fornecedor informado como locadora deve ser do tipo “Locadora”.',
39
+ es: 'El proveedor informado como alquiler debe ser del tipo ”Alquiler”.'
40
+ },
41
+ forbidden_in_use_value: {
42
+ ptBR: 'Não é possível utilizar a situação “Em uso”, pois ela é definida automaticamente pelo sistema.',
43
+ es: 'Npo es posible utilizar la situación "En uso", ya que el sistema la define automáticamente.'
44
+ },
45
+ leasing_contract_must_be_from_rental_agency: {
46
+ ptBR: 'O contrato de locação deve pertencer à locadora informada.',
47
+ es: 'El contracto de locación debe pertenecer a el alquiler informado.'
48
+ }
49
+ };
50
+
36
51
  export const enums = {
37
52
  status: {
38
53
  'available': {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sofit/view-locale",
3
- "version": "1.104.0",
3
+ "version": "1.105.0",
4
4
  "description": "Traduções do Sofit View",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",