Skip to content

Commit d793bf4

Browse files
authored
Merge pull request #37 from brinkmanlab/race-condition
Race condition
2 parents 2ed5dcd + dd2209d commit d793bf4

6 files changed

Lines changed: 37 additions & 27 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@vuex-orm/plugin-axios",
3-
"version": "0.5.0",
3+
"version": "0.5.1",
44
"description": "Vuex-ORM Plugin to sync the data against a RESTful API.",
55
"main": "dist/index.js",
66
"scripts": {

src/actions/Create.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,11 @@ export default class Create extends Action {
2121
const request = axios[method](endpoint, params.data);
2222

2323
this.onRequest(commit);
24-
request
25-
.then(data => this.onSuccess(commit, model, data))
26-
.catch(error => this.onError(commit, error))
24+
try {
25+
await this.onSuccess(commit, model, await request);
26+
} catch(error) {
27+
this.onError(commit, error);
28+
}
2729

2830
return request;
2931
}
@@ -44,7 +46,7 @@ export default class Create extends Action {
4446
*/
4547
static onSuccess(commit, model, data) {
4648
commit('onSuccess')
47-
model.insertOrUpdate({
49+
return model.insertOrUpdate({
4850
data,
4951
});
5052
}

src/actions/Delete.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,12 @@ export default class Delete extends Action {
1616
const method = Action.getMethod('$delete', model, 'delete');
1717
const request = axios[method](endpoint);
1818

19-
this.onRequest(model, params);
20-
request
21-
.then(data => this.onSuccess(model, params, data))
22-
.catch(error => this.onError(model, params, error))
19+
await this.onRequest(model, params);
20+
try {
21+
await this.onSuccess(model, params, await request);
22+
} catch(error) {
23+
await this.onError(model, params, error);
24+
}
2325

2426
return request;
2527
}
@@ -30,7 +32,7 @@ export default class Delete extends Action {
3032
* @param {object} params
3133
*/
3234
static onRequest(model, params) {
33-
model.update({
35+
return model.update({
3436
where: params.params.id,
3537
data: {
3638
$isDeleting: true,
@@ -46,7 +48,7 @@ export default class Delete extends Action {
4648
* @param {object} data
4749
*/
4850
static onSuccess(model, params, data) {
49-
model.delete({
51+
return model.delete({
5052
where: params.params.id || data.id,
5153
})
5254
}
@@ -58,7 +60,7 @@ export default class Delete extends Action {
5860
* @param {object} error
5961
*/
6062
static onError(model, params, error) {
61-
model.update({
63+
return model.update({
6264
where: params.params.id,
6365
data: {
6466
$isDeleting: false,

src/actions/Fetch.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@ export default class Fetch extends Action {
1717
const request = axios[method](endpoint);
1818

1919
this.onRequest(commit);
20-
request
21-
.then(data => this.onSuccess(commit, model, data))
22-
.catch(error => this.onError(commit, error))
20+
try {
21+
await this.onSuccess(commit, model, await request);
22+
} catch(error) {
23+
this.onError(commit, error);
24+
}
2325

2426
return request;
2527
}
@@ -40,7 +42,7 @@ export default class Fetch extends Action {
4042
*/
4143
static onSuccess(commit, model, data) {
4244
commit('onSuccess')
43-
model.insertOrUpdate({
45+
return model.insertOrUpdate({
4446
data,
4547
});
4648
}

src/actions/Get.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@ export default class Get extends Action {
1717
const request = axios[method](endpoint);
1818

1919
this.onRequest(commit);
20-
request
21-
.then(data => this.onSuccess(commit, model, data))
22-
.catch(error => this.onError(commit, error))
20+
try {
21+
await this.onSuccess(commit, model, await request);
22+
} catch(error) {
23+
this.onError(commit, error);
24+
}
2325

2426
return request;
2527
}
@@ -40,7 +42,7 @@ export default class Get extends Action {
4042
*/
4143
static onSuccess(commit, model, data) {
4244
commit('onSuccess')
43-
model.insertOrUpdate({
45+
return model.insertOrUpdate({
4446
data,
4547
});
4648
}

src/actions/Update.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@ export default class Update extends Action {
2121
const method = Action.getMethod('$update', model, 'put');
2222
const request = axios[method](endpoint, params.data);
2323

24-
this.onRequest(model, params);
25-
request
26-
.then(data => this.onSuccess(model, params, data))
27-
.catch(error => this.onError(model, params, error))
24+
await this.onRequest(model, params);
25+
try {
26+
await this.onSuccess(model, params, await request);
27+
} catch(error) {
28+
await this.onError(model, params, error);
29+
}
2830

2931
return request;
3032
}
@@ -35,7 +37,7 @@ export default class Update extends Action {
3537
* @param {object} params
3638
*/
3739
static onRequest(model, params) {
38-
model.update({
40+
return model.update({
3941
where: params.params.id,
4042
data: {
4143
$isUpdating: true,
@@ -51,7 +53,7 @@ export default class Update extends Action {
5153
* @param {object} data
5254
*/
5355
static onSuccess(model, params, data) {
54-
model.update({
56+
return model.update({
5557
where: params.params.id || data.id,
5658
data: merge({}, data, {
5759
$isUpdating: false,
@@ -67,7 +69,7 @@ export default class Update extends Action {
6769
* @param {object} error
6870
*/
6971
static onError(model, params, error) {
70-
model.update({
72+
return model.update({
7173
where: params.params.id,
7274
data: {
7375
$isUpdating: false,

0 commit comments

Comments
 (0)