Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

js: Replace OpenAPI generator http code with our own #1671

Merged
merged 2 commits into from
Jan 30, 2025
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 45 additions & 35 deletions javascript/src/api/application.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
// this file is @generated (with the exception of getOrCreate)
// this file is @generated
import {
Configuration,
ApplicationApi,
ApplicationIn,
ApplicationOut,
ApplicationPatch,
ListResponseApplicationOut,
Ordering,
} from "../openapi";
import { HttpMethod, SvixRequest, SvixRequestContext } from "../request";
import { PostOptions } from "../util";

export interface ApplicationListOptions {
Expand All @@ -20,73 +19,84 @@ export interface ApplicationListOptions {
}

export class Application {
private readonly api: ApplicationApi;

public constructor(config: Configuration) {
this.api = new ApplicationApi(config);
}
public constructor(private readonly requestCtx: SvixRequestContext) {}

/** List of all the organization's applications. */
public list(options?: ApplicationListOptions): Promise<ListResponseApplicationOut> {
return this.api.v1ApplicationList({
...options,
iterator: options?.iterator ?? undefined,
});
const request = new SvixRequest(HttpMethod.GET, "/api/v1/app");

request.setQueryParam("limit", options?.limit);
request.setQueryParam("iterator", options?.iterator);
request.setQueryParam("order", options?.order);

return request.send(this.requestCtx);
}

/** Create a new application. */
public create(
applicationIn: ApplicationIn,
options?: PostOptions
): Promise<ApplicationOut> {
return this.api.v1ApplicationCreate({
applicationIn,
...options,
});
const request = new SvixRequest(HttpMethod.POST, "/api/v1/app");

request.setHeaderParam("idempotency-key", options?.idempotencyKey);
request.body = applicationIn;

return request.send(this.requestCtx);
}

/** Get the application with the UID from `applicationIn`, or create it if it doesn't exist yet. */
public getOrCreate(
applicationIn: ApplicationIn,
options?: PostOptions
): Promise<ApplicationOut> {
return this.api.v1ApplicationCreate({
applicationIn,
...options,
getIfExists: true,
});
const request = new SvixRequest(HttpMethod.POST, "/api/v1/app");

request.body = applicationIn;
request.setQueryParam("get_if_exists", true);
request.setHeaderParam("idempotency-key", options?.idempotencyKey);

return request.send(this.requestCtx);
}

/** Get an application. */
public get(appId: string): Promise<ApplicationOut> {
return this.api.v1ApplicationGet({
appId,
});
const request = new SvixRequest(HttpMethod.GET, "/api/v1/app/{app_id}");

request.setPathParam("app_id", appId);

return request.send(this.requestCtx);
}

/** Update an application. */
public update(appId: string, applicationIn: ApplicationIn): Promise<ApplicationOut> {
return this.api.v1ApplicationUpdate({
appId,
applicationIn,
});
const request = new SvixRequest(HttpMethod.PUT, "/api/v1/app/{app_id}");

request.setPathParam("app_id", appId);
request.body = applicationIn;

return request.send(this.requestCtx);
}

/** Delete an application. */
public delete(appId: string): Promise<void> {
return this.api.v1ApplicationDelete({
appId,
});
const request = new SvixRequest(HttpMethod.DELETE, "/api/v1/app/{app_id}");

request.setPathParam("app_id", appId);

return request.sendNoResponseBody(this.requestCtx);
}

/** Partially update an application. */
public patch(
appId: string,
applicationPatch: ApplicationPatch
): Promise<ApplicationOut> {
return this.api.v1ApplicationPatch({
appId,
applicationPatch,
});
const request = new SvixRequest(HttpMethod.PATCH, "/api/v1/app/{app_id}");

request.setPathParam("app_id", appId);
request.body = applicationPatch;

return request.send(this.requestCtx);
}
}
60 changes: 36 additions & 24 deletions javascript/src/api/authentication.ts
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
// this file is @generated
import {
Configuration,
AuthenticationApi,
AppPortalAccessIn,
AppPortalAccessOut,
ApplicationTokenExpireIn,
DashboardAccessOut,
} from "../openapi";
import { HttpMethod, SvixRequest, SvixRequestContext } from "../request";
import { PostOptions } from "../util";

export class Authentication {
private readonly api: AuthenticationApi;

public constructor(config: Configuration) {
this.api = new AuthenticationApi(config);
}
public constructor(private readonly requestCtx: SvixRequestContext) {}

/** Use this function to get magic links (and authentication codes) for connecting your users to the Consumer Application Portal. */
public appPortalAccess(
appId: string,
appPortalAccessIn: AppPortalAccessIn,
options?: PostOptions
): Promise<AppPortalAccessOut> {
return this.api.v1AuthenticationAppPortalAccess({
appId,
appPortalAccessIn,
...options,
});
const request = new SvixRequest(
HttpMethod.POST,
"/api/v1/auth/app-portal-access/{app_id}"
);

request.setPathParam("app_id", appId);
request.setHeaderParam("idempotency-key", options?.idempotencyKey);
request.body = appPortalAccessIn;

return request.send(this.requestCtx);
}

/** Expire all of the tokens associated with a specific application. */
Expand All @@ -35,11 +35,16 @@ export class Authentication {
applicationTokenExpireIn: ApplicationTokenExpireIn,
options?: PostOptions
): Promise<void> {
return this.api.v1AuthenticationExpireAll({
appId,
applicationTokenExpireIn,
...options,
});
const request = new SvixRequest(
HttpMethod.POST,
"/api/v1/auth/app/{app_id}/expire-all"
);

request.setPathParam("app_id", appId);
request.setHeaderParam("idempotency-key", options?.idempotencyKey);
request.body = applicationTokenExpireIn;

return request.sendNoResponseBody(this.requestCtx);
}

/**
Expand All @@ -53,10 +58,15 @@ export class Authentication {
appId: string,
options?: PostOptions
): Promise<DashboardAccessOut> {
return this.api.v1AuthenticationDashboardAccess({
appId,
...options,
});
const request = new SvixRequest(
HttpMethod.POST,
"/api/v1/auth/dashboard-access/{app_id}"
);

request.setPathParam("app_id", appId);
request.setHeaderParam("idempotency-key", options?.idempotencyKey);

return request.send(this.requestCtx);
}

/**
Expand All @@ -65,8 +75,10 @@ export class Authentication {
* Trying to log out other tokens will fail.
*/
public logout(options?: PostOptions): Promise<void> {
return this.api.v1AuthenticationLogout({
...options,
});
const request = new SvixRequest(HttpMethod.POST, "/api/v1/auth/logout");

request.setHeaderParam("idempotency-key", options?.idempotencyKey);

return request.sendNoResponseBody(this.requestCtx);
}
}
30 changes: 16 additions & 14 deletions javascript/src/api/background_task.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
// this file is @generated
import {
Configuration,
BackgroundTasksApi,
BackgroundTaskOut,
BackgroundTaskStatus,
BackgroundTaskType,
ListResponseBackgroundTaskOut,
Ordering,
} from "../openapi";
import { HttpMethod, SvixRequest, SvixRequestContext } from "../request";

export interface BackgroundTaskListOptions {
/** Filter the response based on the status. */
Expand All @@ -23,20 +22,21 @@ export interface BackgroundTaskListOptions {
}

export class BackgroundTask {
private readonly api: BackgroundTasksApi;

public constructor(config: Configuration) {
this.api = new BackgroundTasksApi(config);
}
public constructor(private readonly requestCtx: SvixRequestContext) {}

/** List background tasks executed in the past 90 days. */
public list(
options?: BackgroundTaskListOptions
): Promise<ListResponseBackgroundTaskOut> {
return this.api.listBackgroundTasks({
...options,
iterator: options?.iterator ?? undefined,
});
const request = new SvixRequest(HttpMethod.GET, "/api/v1/background-task");

request.setQueryParam("status", options?.status);
request.setQueryParam("task", options?.task);
request.setQueryParam("limit", options?.limit);
request.setQueryParam("iterator", options?.iterator);
request.setQueryParam("order", options?.order);

return request.send(this.requestCtx);
}

/**
Expand All @@ -52,8 +52,10 @@ export class BackgroundTask {

/** Get a background task by ID. */
public get(taskId: string): Promise<BackgroundTaskOut> {
return this.api.getBackgroundTask({
taskId,
});
const request = new SvixRequest(HttpMethod.GET, "/api/v1/background-task/{task_id}");

request.setPathParam("task_id", taskId);

return request.send(this.requestCtx);
}
}
Loading