mirror of
https://github.com/hay-kot/homebox.git
synced 2024-11-25 18:15:40 +00:00
fix 3 places where API URLs were not constructed by function route (#451)
* Fixed 3 places where API URLs were not constructed by function route(path, params).
* autofix
---------
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
Former-commit-id: 06eb6c1f91
This commit is contained in:
parent
4b071bccda
commit
0eb0b283b2
4 changed files with 12 additions and 7 deletions
|
@ -15,10 +15,12 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { route } from "../../lib/api/base";
|
||||||
|
|
||||||
function getQRCodeUrl(): string {
|
function getQRCodeUrl(): string {
|
||||||
const currentURL = window.location.href;
|
const currentURL = window.location.href;
|
||||||
|
|
||||||
return `/api/v1/qrcode?data=${encodeURIComponent(currentURL)}`;
|
return route(`/qrcode`, { data: encodeURIComponent(currentURL) });
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { Requests } from "../../requests";
|
import { Requests } from "../../requests";
|
||||||
|
import { route } from ".";
|
||||||
|
|
||||||
const ZERO_DATE = "0001-01-01T00:00:00Z";
|
const ZERO_DATE = "0001-01-01T00:00:00Z";
|
||||||
|
|
||||||
|
@ -70,12 +71,12 @@ export class BaseAPI {
|
||||||
this.attachmentToken = attachmentToken;
|
this.attachmentToken = attachmentToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if a attachmentToken is present it will be added to URL as a query param
|
// if an attachmentToken is present, it will be added to URL as a query param
|
||||||
// this is done with a simple appending of the query param to the URL. If your
|
// this is done with a simple appending of the query param to the URL. If your
|
||||||
// URL already has a query param, this will not work.
|
// URL already has a query param, this will not work.
|
||||||
authURL(url: string): string {
|
authURL(url: string): string {
|
||||||
if (this.attachmentToken) {
|
if (this.attachmentToken) {
|
||||||
return `/api/v1${url}?access_token=${this.attachmentToken}`;
|
return route(url, { access_token: this.attachmentToken });
|
||||||
}
|
}
|
||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,13 +11,13 @@ export function overrideParts(host: string, prefix: string) {
|
||||||
export type QueryValue = string | string[] | number | number[] | boolean | null | undefined;
|
export type QueryValue = string | string[] | number | number[] | boolean | null | undefined;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* route is a the main URL builder for the API. It will use a predefined host and prefix (global)
|
* route is the main URL builder for the API. It will use a predefined host and prefix (global)
|
||||||
* in the urls.ts file and then append the passed in path parameter uring the `URL` class from the
|
* in the urls.ts file and then append the passed-in path parameter using the `URL` class from the
|
||||||
* browser. It will also append any query parameters passed in as the second parameter.
|
* browser. It will also append any query parameters passed in as the second parameter.
|
||||||
*
|
*
|
||||||
* The default host `http://localhost.com` is removed from the path if it is present. This allows us
|
* The default host `http://localhost.com` is removed from the path if it is present. This allows us
|
||||||
* to bootstrap the API with different hosts as needed (like for testing) but still allows us to use
|
* to bootstrap the API with different hosts as needed (like for testing) but still allows us to use
|
||||||
* relative URLs in pruduction because the API and client bundle are served from the same server/host.
|
* relative URLs in production because the API and client bundle are served from the same server/host.
|
||||||
*/
|
*/
|
||||||
export function route(rest: string, params: Record<string, QueryValue> = {}): string {
|
export function route(rest: string, params: Record<string, QueryValue> = {}): string {
|
||||||
const url = new URL(parts.prefix + rest, parts.host);
|
const url = new URL(parts.prefix + rest, parts.host);
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { route } from "../../lib/api/base";
|
||||||
|
|
||||||
definePageMeta({
|
definePageMeta({
|
||||||
middleware: ["auth"],
|
middleware: ["auth"],
|
||||||
layout: false,
|
layout: false,
|
||||||
|
@ -176,7 +178,7 @@
|
||||||
|
|
||||||
const data = `${origin}/a/${assetID}`;
|
const data = `${origin}/a/${assetID}`;
|
||||||
|
|
||||||
return `/api/v1/qrcode?data=${encodeURIComponent(data)}`;
|
return route(`/qrcode`, { data: encodeURIComponent(data) });
|
||||||
}
|
}
|
||||||
|
|
||||||
function getItem(n: number): LabelData {
|
function getItem(n: number): LabelData {
|
||||||
|
|
Loading…
Reference in a new issue