Skip to content

Commit ec73833

Browse files
upload_file composable
1 parent be1f572 commit ec73833

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

composables/upload_file.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
export function upload_file(
2+
{ route, params },
3+
{ request_error_function, response_function, response_error_function } = {},
4+
) {
5+
const errors_store = use_errors_store()
6+
const geode_store = use_geode_store()
7+
8+
const body = params || {}
9+
geode_store.start_request()
10+
11+
const request_options = { method: "POST" }
12+
if (!_.isEmpty(body)) {
13+
request_options.body = body
14+
}
15+
16+
return useFetch(route, {
17+
baseURL: geode_store.base_url,
18+
...request_options,
19+
onRequestError({ error }) {
20+
geode_store.stop_request()
21+
errors_store.add_error({
22+
code: error.code,
23+
route: route,
24+
name: error.message,
25+
description: error.stack,
26+
})
27+
if (request_error_function) {
28+
request_error_function(error)
29+
}
30+
},
31+
onResponse({ response }) {
32+
if (response.ok) {
33+
geode_store.stop_request()
34+
if (response_function) {
35+
response_function(response)
36+
}
37+
}
38+
},
39+
onResponseError({ response }) {
40+
geode_store.stop_request()
41+
errors_store.add_error({
42+
code: response.status,
43+
route: route,
44+
name: response._data.name,
45+
description: response._data.description,
46+
})
47+
if (response_error_function) {
48+
response_error_function(response)
49+
}
50+
},
51+
})
52+
}
53+
54+
export default api_fetch

0 commit comments

Comments
 (0)