(hostname, containerURI, { slug = uuid(), extension, container } = {})
| 794 | } |
| 795 | |
| 796 | async getAvailableUrl (hostname, containerURI, { slug = uuid(), extension, container } = {}) { |
| 797 | let requestUrl = this.resourceMapper.resolveUrl(hostname, containerURI) |
| 798 | requestUrl = requestUrl.replace(/\/*$/, '/') |
| 799 | |
| 800 | let itemName = slug.endsWith(extension) || slug.endsWith(this.suffixAcl) || slug.endsWith(this.suffixMeta) ? slug : slug + extension |
| 801 | try { |
| 802 | // check whether resource exists |
| 803 | const context = container ? '/' : '' |
| 804 | await this.resourceMapper.mapUrlToFile({ url: (requestUrl + itemName + context) }) |
| 805 | itemName = `${uuid()}-${itemName}` |
| 806 | } catch (e) { |
| 807 | try { |
| 808 | // check whether resource with same name exists |
| 809 | const context = !container ? '/' : '' |
| 810 | await this.resourceMapper.mapUrlToFile({ url: (requestUrl + itemName + context) }) |
| 811 | itemName = `${uuid()}-${itemName}` |
| 812 | } catch (e) {} |
| 813 | } |
| 814 | if (container) itemName += '/' |
| 815 | return requestUrl + itemName |
| 816 | } |
| 817 | |
| 818 | getTrustedOrigins (req) { |
| 819 | const trustedOrigins = [this.resourceMapper.resolveUrl(req.hostname)].concat(this.trustedOrigins) |
no test coverage detected