Henrique Dias d4a43db187 Stop using window.info on webdav
Former-commit-id: 525f0503cb8f56cdf3e8934513b96077d6c2aefb [formerly f6830f5bc3395b8dc8f2d9c0dced5e7c4a463c13] [formerly abf948f3c3fc7beee3ead5582313583af8e8f779 [formerly 01c78d2b3633a7e430a8384238841ee39a939357]]
Former-commit-id: 531573bbd76b66d9f72cfb7288e2077fa05a7b39 [formerly 5e5758c2f5a151da2ebcd1df304ae009a03c7904]
Former-commit-id: a3a6af9297b489ebd162f89362729e5f952e7900
2017-07-01 09:38:31 +01:00

88 lines
2.2 KiB
JavaScript

import store from '../store/store'
function convertURL (url) {
return window.location.origin + url.replace(store.state.baseURL + '/', store.state.webDavURL + '/')
}
function move (oldLink, newLink) {
return new Promise((resolve, reject) => {
let request = new window.XMLHttpRequest()
oldLink = convertURL(oldLink)
newLink = newLink.replace(store.state.baseURL + '/', store.state.webDavURL + '/')
newLink = window.location.origin + newLink.substring(store.state.baseURL.length)
request.open('MOVE', oldLink, true)
request.setRequestHeader('Destination', newLink)
request.onload = () => {
if (request.status === 201 || request.status === 204) {
resolve()
} else {
reject(request.statusText)
}
}
request.onerror = () => reject(request.statusText)
request.send()
})
}
function put (link, body, headers = {}) {
return new Promise((resolve, reject) => {
let request = new window.XMLHttpRequest()
request.open('PUT', convertURL(link), true)
for (let key in headers) {
request.setRequestHeader(key, headers[key])
}
request.onload = () => {
if (request.status === 201) {
resolve()
} else {
reject(request.statusText)
}
}
request.onerror = () => reject(request.statusText)
request.send(body)
})
}
function trash (link) {
return new Promise((resolve, reject) => {
let request = new window.XMLHttpRequest()
request.open('DELETE', convertURL(link), true)
request.onload = () => {
if (request.status === 204) {
resolve()
} else {
reject(request.statusText)
}
}
request.onerror = () => reject(request.statusText)
request.send()
})
}
function create (link) {
return new Promise((resolve, reject) => {
let request = new window.XMLHttpRequest()
request.open((link.endsWith('/') ? 'MKCOL' : 'PUT'), convertURL(link), true)
request.onload = () => {
if (request.status === 201) {
resolve()
} else {
reject(request.statusText)
}
}
request.onerror = () => reject(request.statusText)
request.send()
})
}
export default {
create: create,
trash: trash,
put: put,
move: move
}