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>
This commit is contained in:
db8200 2023-07-23 06:11:29 +02:00 committed by GitHub
parent 27dad0e118
commit 06eb6c1f91
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 12 additions and 7 deletions

View file

@ -15,10 +15,12 @@
</template>
<script setup lang="ts">
import { route } from "../../lib/api/base";
function getQRCodeUrl(): string {
const currentURL = window.location.href;
return `/api/v1/qrcode?data=${encodeURIComponent(currentURL)}`;
return route(`/qrcode`, { data: encodeURIComponent(currentURL) });
}
</script>

View file

@ -1,4 +1,5 @@
import { Requests } from "../../requests";
import { route } from ".";
const ZERO_DATE = "0001-01-01T00:00:00Z";
@ -70,12 +71,12 @@ export class BaseAPI {
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
// URL already has a query param, this will not work.
authURL(url: string): string {
if (this.attachmentToken) {
return `/api/v1${url}?access_token=${this.attachmentToken}`;
return route(url, { access_token: this.attachmentToken });
}
return url;
}

View file

@ -11,13 +11,13 @@ export function overrideParts(host: string, prefix: string) {
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)
* in the urls.ts file and then append the passed in path parameter uring the `URL` class from the
* 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 using the `URL` class from the
* 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
* 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 {
const url = new URL(parts.prefix + rest, parts.host);

View file

@ -1,4 +1,6 @@
<script setup lang="ts">
import { route } from "../../lib/api/base";
definePageMeta({
middleware: ["auth"],
layout: false,
@ -176,7 +178,7 @@
const data = `${origin}/a/${assetID}`;
return `/api/v1/qrcode?data=${encodeURIComponent(data)}`;
return route(`/qrcode`, { data: encodeURIComponent(data) });
}
function getItem(n: number): LabelData {