# give/4.16.9/src/EventTickets/resources/admin/components/api.ts

GiveWP – Donation Plugin and Fundraising Platform, version 4.16.9. 39 lines.

- Page: https://pluginprobe.com/plugins/give/4.16.9/code/src/EventTickets/resources/admin/components/api.ts
- Raw: https://pluginprobe.com/plugins/give/4.16.9/raw/src/EventTickets/resources/admin/components/api.ts
- Modified: 2024-03-13T21:54:14+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/give/4.16.9/code/src/EventTickets/resources/admin/components/api.ts#L10-L20`.

```typescript
export default class EventTicketsApi {
    private readonly apiRoot: string;
    private readonly headers: {'X-WP-Nonce': string; 'Content-Type': string};

    constructor({apiNonce, apiRoot}) {
        this.apiRoot = apiRoot;
        this.headers = {
            'Content-Type': 'application/json',
            'X-WP-Nonce': apiNonce,
        };
    }

    fetchWithArgs = (endpoint, args, method = 'GET', signal = null) => {
        const url = new URL(this.apiRoot + endpoint);
        for (const [param, value] of Object.entries(args)) {
            value !== '' && url.searchParams.set(param, value as string);
        }
        return fetch(url.href, {
            method: method,
            signal: signal,
            headers: this.headers,
        })
            .then((res) => {
                if (!res.ok) {
                    throw new Error();
                }
                return res.text();
            })
            .then((text) => {
                try {
                    return text ? JSON.parse(text) : {};
                } catch (error) {
                    console.error('Failed to parse JSON:', error);
                    return {};
                }
            });
    };
}

```
