Skip to content

Commit 6b58c5c

Browse files
committed
Revert "Update model.js value mapping"
This reverts commit f6e9f63.
1 parent f6e9f63 commit 6b58c5c

File tree

3 files changed

+13
-60
lines changed

3 files changed

+13
-60
lines changed

generator/templates/Crud/src/components/Resource.vue

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,8 @@ export default {
145145
let item;
146146
147147
if (this.modelType) {
148-
item = new this.modelType().mapResponse(response.data.data);
148+
item = new this.modelType();
149+
item.mapResponse(response.data.data);
149150
} else {
150151
item = response.data.data;
151152
}
@@ -238,7 +239,8 @@ export default {
238239
}
239240
240241
if (this.modelType) {
241-
this.updateForm.values = new this.modelType().mapResponse(selected[0]);
242+
this.updateForm.values = new this.modelType();
243+
this.updateForm.values.mapResponse(selected[0]);
242244
} else {
243245
this.updateForm.values = selected[0];
244246
}

generator/templates/Default/src/application/models/model.js

Lines changed: 3 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
*
33
*/
44
class Model {
5+
56
/**
67
* @return {{}};
78
*/
@@ -11,66 +12,10 @@ class Model {
1112

1213
/**
1314
* @param data {{}}
14-
* @return {model}
1515
*/
1616
mapResponse(data) {
17-
return this.initializeObjectFromApi(data, this);
18-
}
19-
20-
/**
21-
* @private
22-
* @param data
23-
* @param assignable
24-
* @return {model}
25-
*/
26-
initializeObjectFromApi(data, assignable) {
27-
Object.keys(assignable)
28-
.forEach(key => {
29-
const value = assignable[key];
30-
const type = typeof value;
31-
32-
if (typeof data[key] === type) {
33-
assignable[key] = data[key];
34-
return;
35-
}
36-
37-
const defaultValue = this.getDefaultValueFromType(type, value);
38-
39-
assignable[key] = data[key] || defaultValue;
40-
});
41-
42-
Object.keys(data)
43-
.forEach(key => {
44-
if (typeof assignable[key] === 'undefined') {
45-
assignable[key] = data[key];
46-
}
47-
});
48-
49-
return assignable;
50-
}
51-
52-
/**
53-
* @private
54-
* @param type
55-
* @param defaultModelValue
56-
* @return {*}
57-
*/
58-
getDefaultValueFromType(type, defaultModelValue) {
59-
let defaultValue;
60-
61-
if (type === 'string') {
62-
defaultValue = defaultModelValue || '';
63-
} else if (type === 'boolean') {
64-
defaultValue = defaultModelValue || false;
65-
} else if (type === 'number') {
66-
defaultValue = defaultModelValue || 0;
67-
} else if (Array.isArray(defaultModelValue)) {
68-
defaultValue = defaultModelValue || [];
69-
} else {
70-
defaultValue = defaultModelValue || null;
71-
}
72-
73-
return defaultValue;
17+
throw new Error(`${this.constructor.name}::mapResponse unset, keys: ${Object.keys(data)
18+
.join(', ')}`);
7419
}
7520
}
7621

generator/templates/Default/src/application/models/user.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@ class User extends Model {
1111
email: this.email,
1212
};
1313
}
14+
15+
mapResponse(data) {
16+
this.id = data.id;
17+
this.name = data.name;
18+
this.email = data.email;
19+
}
1420
}
1521

1622
export default User;

0 commit comments

Comments
 (0)