@sofit/view-locale 1.104.0 → 1.106.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': {
@@ -49,8 +49,8 @@ exports.messages = {
49
49
  es: 'Este alquiler no se puede eliminar ya que ya hay mediciones de facturas pagadas: {{measurements}}.'
50
50
  },
51
51
  must_have_no_paid_measurement_when_editing: {
52
- ptBR: 'Existem medições de faturas pagas, portanto é possível a alteração da data de devolução.',
53
- es: 'Hay mediciones de facturas pagadas, por lo que solo puede cambiar la fecha de devolución.'
52
+ ptBR: 'Não é possível alterar o {{field}}, pois essa locação possui medições pagas.',
53
+ es: 'No se puede cambiar el {{field}}, ya que este arrendamiento ya tiene mediciones pagadas.'
54
54
  }
55
55
  };
56
56
  exports.enums = {
@@ -69,6 +69,10 @@ export declare const messages: {
69
69
  ptBR: string;
70
70
  es: string;
71
71
  };
72
+ devolution_date_must_be_higher_than_last_paid_measurement: {
73
+ ptBR: string;
74
+ es: string;
75
+ };
72
76
  devolution_date_must_be_lower_or_equal_then_today: {
73
77
  ptBR: string;
74
78
  es: string;
@@ -52,6 +52,10 @@ exports.messages = {
52
52
  ptBR: 'A data de ínício da locação deve ser menor que a data de previsão de término da locação',
53
53
  es: 'El inicio del alquiler debe ser menor que la fecha de previsión final de alquiler'
54
54
  },
55
+ devolution_date_must_be_higher_than_last_paid_measurement: {
56
+ ptBR: 'Não é possível alterar a previsão de término para a data informada, pois a medição de {{month}}/{{year}} já foi paga.',
57
+ es: 'No se puede cambiar la previsión de finalización para la fecha dada, porque la medicíon de {{month}}/{{year}} ya ha sido pagada.'
58
+ },
55
59
  devolution_date_must_be_lower_or_equal_then_today: {
56
60
  ptBR: 'A data de devolução informada deve ser menor ou igual a hoje.',
57
61
  es: 'La fecha de devolucion informada debe ser menor o igual a hoy.'
package/junit.xml CHANGED
@@ -1,23 +1,23 @@
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="3.459">
3
+ <testsuite name="Vehicle locale test" errors="0" failures="0" skipped="0" timestamp="2020-07-21T20:18:30" time="2.788" 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
- <testcase classname="Vehicle locale test Should replace correctly with reach" name="Vehicle locale test Should replace correctly with reach" time="0">
6
+ <testcase classname="Vehicle locale test Should replace correctly with reach" name="Vehicle locale test Should replace correctly with reach" time="0.001">
7
7
  </testcase>
8
- <testcase classname="Vehicle locale test Should get translations with raw" name="Vehicle locale test Should get translations with raw" time="0.001">
8
+ <testcase classname="Vehicle locale test Should get translations with raw" name="Vehicle locale test Should get translations with raw" time="0">
9
9
  </testcase>
10
- <testcase classname="Vehicle locale test Should replace correctly with raw" name="Vehicle locale test Should replace correctly with raw" time="0">
10
+ <testcase classname="Vehicle locale test Should replace correctly with raw" name="Vehicle locale test Should replace correctly with raw" time="0.001">
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-21T20:18:30" time="2.793" 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': {
@@ -63,8 +63,8 @@ export const messages = {
63
63
  es: 'Este alquiler no se puede eliminar ya que ya hay mediciones de facturas pagadas: {{measurements}}.'
64
64
  },
65
65
  must_have_no_paid_measurement_when_editing: {
66
- ptBR: 'Existem medições de faturas pagas, portanto é possível a alteração da data de devolução.',
67
- es: 'Hay mediciones de facturas pagadas, por lo que solo puede cambiar la fecha de devolución.'
66
+ ptBR: 'Não é possível alterar o {{field}}, pois essa locação possui medições pagas.',
67
+ es: 'No se puede cambiar el {{field}}, ya que este arrendamiento ya tiene mediciones pagadas.'
68
68
  }
69
69
  };
70
70
 
@@ -62,6 +62,10 @@ export const messages = {
62
62
  ptBR: 'A data de ínício da locação deve ser menor que a data de previsão de término da locação',
63
63
  es: 'El inicio del alquiler debe ser menor que la fecha de previsión final de alquiler'
64
64
  },
65
+ devolution_date_must_be_higher_than_last_paid_measurement: {
66
+ ptBR: 'Não é possível alterar a previsão de término para a data informada, pois a medição de {{month}}/{{year}} já foi paga.',
67
+ es: 'No se puede cambiar la previsión de finalización para la fecha dada, porque la medicíon de {{month}}/{{year}} ya ha sido pagada.'
68
+ },
65
69
  devolution_date_must_be_lower_or_equal_then_today: {
66
70
  ptBR: 'A data de devolução informada deve ser menor ou igual a hoje.',
67
71
  es: 'La fecha de devolucion informada debe ser menor o igual a hoy.'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sofit/view-locale",
3
- "version": "1.104.0",
3
+ "version": "1.106.0",
4
4
  "description": "Traduções do Sofit View",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",