summaryrefslogtreecommitdiff
path: root/client/js/api.js
diff options
context:
space:
mode:
authorrr- <rr-@sakuya.pl>2016-04-10 15:55:56 +0200
committerrr- <rr-@sakuya.pl>2016-04-10 18:54:19 +0200
commit4dcee37567cd2efdd3f408f20d282a828dbc1f79 (patch)
tree1979a3b2bc8d08c9644153e969ea08da514c0200 /client/js/api.js
parentc788061976c94f98336621e05a26e71aa5488efd (diff)
client/users: support avatar changing
Diffstat (limited to 'client/js/api.js')
-rw-r--r--client/js/api.js31
1 files changed, 18 insertions, 13 deletions
diff --git a/client/js/api.js b/client/js/api.js
index 2a41b2f..457dccd 100644
--- a/client/js/api.js
+++ b/client/js/api.js
@@ -13,28 +13,33 @@ class Api {
}
get(url) {
- const fullUrl = this.getFullUrl(url);
- return this._process(fullUrl, () => request.get(fullUrl));
+ return this._process(url, request.get);
}
- post(url, data) {
- const fullUrl = this.getFullUrl(url);
- return this._process(fullUrl, () => request.post(fullUrl).send(data));
+ post(url, data, files) {
+ return this._process(url, request.post, data, files);
}
- put(url, data) {
- const fullUrl = this.getFullUrl(url);
- return this._process(fullUrl, () => request.put(fullUrl).send(data));
+ put(url, data, files) {
+ return this._process(url, request.put, data, files);
}
- delete(url, data) {
- const fullUrl = this.getFullUrl(url);
- return this._process(fullUrl, () => request.delete(fullUrl).send(data));
+ delete(url) {
+ return this._process(url, request.delete);
}
- _process(url, requestFactory) {
+ _process(url, requestFactory, data, files) {
+ const fullUrl = this.getFullUrl(url);
return new Promise((resolve, reject) => {
- let req = requestFactory();
+ let req = requestFactory(fullUrl);
+ if (data) {
+ req.attach('metadata', new Blob([JSON.stringify(data)]));
+ }
+ if (files) {
+ for (let key of Object.keys(files)) {
+ req.attach(key, files[key]);
+ }
+ }
if (this.userName && this.userPassword) {
req.auth(this.userName, this.userPassword);
}