diff options
| author | rr- <rr-@sakuya.pl> | 2016-04-10 15:55:56 +0200 |
|---|---|---|
| committer | rr- <rr-@sakuya.pl> | 2016-04-10 18:54:19 +0200 |
| commit | 4dcee37567cd2efdd3f408f20d282a828dbc1f79 (patch) | |
| tree | 1979a3b2bc8d08c9644153e969ea08da514c0200 /client/js/api.js | |
| parent | c788061976c94f98336621e05a26e71aa5488efd (diff) | |
client/users: support avatar changing
Diffstat (limited to 'client/js/api.js')
| -rw-r--r-- | client/js/api.js | 31 |
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); } |