Signal API updates
This commit is contained in:
parent
83653ef23b
commit
c729a46a0c
25 changed files with 501 additions and 279 deletions
|
|
@ -109,7 +109,9 @@ export interface Database {
|
|||
name: string;
|
||||
description: string;
|
||||
phoneNumber: string;
|
||||
createdBy: string;
|
||||
qrCode: string;
|
||||
token: string;
|
||||
verified: boolean;
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ export const Detail: FC<DetailProps> = ({ service, row }) => {
|
|||
<QRCode
|
||||
name={field.name}
|
||||
label={field.label}
|
||||
getValue={field.getValue}
|
||||
getValue={field.getQRCode}
|
||||
refreshInterval={field.refreshInterval}
|
||||
token={token}
|
||||
verified={row.verified as boolean}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ type QRCodeProps = {
|
|||
token: string;
|
||||
verified: boolean;
|
||||
helperText?: string;
|
||||
getValue?: (id: string) => Promise<string>;
|
||||
getValue?: (id: string) => Promise<Record<string, string>>;
|
||||
refreshInterval?: number;
|
||||
};
|
||||
|
||||
|
|
@ -23,13 +23,16 @@ export const QRCode: FC<QRCodeProps> = ({
|
|||
refreshInterval,
|
||||
}) => {
|
||||
const [value, setValue] = useState("");
|
||||
const [kind, setKind] = useState("data");
|
||||
const { white } = colors;
|
||||
|
||||
useEffect(() => {
|
||||
if (!verified && getValue && refreshInterval) {
|
||||
const interval = setInterval(async () => {
|
||||
const result = await getValue(token);
|
||||
setValue(result);
|
||||
const { qr, kind } = await getValue(token);
|
||||
console.log({ kind });
|
||||
setValue(qr);
|
||||
setKind(kind);
|
||||
}, refreshInterval * 1000);
|
||||
return () => clearInterval(interval);
|
||||
}
|
||||
|
|
@ -37,7 +40,11 @@ export const QRCode: FC<QRCodeProps> = ({
|
|||
|
||||
return !verified ? (
|
||||
<Box sx={{ backgroundColor: white, m: 2 }}>
|
||||
<QRCodeInternal value={value} />
|
||||
{kind === "data" ? (
|
||||
<QRCodeInternal value={value} />
|
||||
) : (
|
||||
<img src={value} alt={name} />
|
||||
)}
|
||||
<Box>{helperText}</Box>
|
||||
</Box>
|
||||
) : null;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,13 @@
|
|||
import { ServiceConfig } from "../lib/service";
|
||||
|
||||
const getQRCode = async (token: string): Promise<Record<string, string>> => {
|
||||
const url = `/api/signal/bots/${token}`;
|
||||
const result = await fetch(url, { cache: "no-store" });
|
||||
const { qr } = await result.json();
|
||||
|
||||
return { qr, kind: "image" };
|
||||
};
|
||||
|
||||
export const signalConfig: ServiceConfig = {
|
||||
entity: "signal",
|
||||
table: "SignalBot",
|
||||
|
|
@ -59,6 +67,15 @@ export const signalConfig: ServiceConfig = {
|
|||
label: "Token",
|
||||
copyable: true,
|
||||
},
|
||||
{
|
||||
name: "qrcode",
|
||||
label: "QR Code",
|
||||
kind: "qrcode",
|
||||
size: 4,
|
||||
getQRCode,
|
||||
helperText: "Go to link devices in the app, then scan the code",
|
||||
refreshInterval: 15,
|
||||
},
|
||||
],
|
||||
listColumns: [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ const getQRCode = async (token: string) => {
|
|||
const result = await fetch(url, { cache: "no-store" });
|
||||
const { qr } = await result.json();
|
||||
|
||||
return qr ?? "";
|
||||
return { qr, kind: "data" };
|
||||
};
|
||||
|
||||
export const whatsappConfig: ServiceConfig = {
|
||||
|
|
@ -73,8 +73,8 @@ export const whatsappConfig: ServiceConfig = {
|
|||
label: "QR Code",
|
||||
kind: "qrcode",
|
||||
size: 4,
|
||||
getValue: getQRCode,
|
||||
helperText: "Go ahead, scan it",
|
||||
getQRCode,
|
||||
helperText: "Go to link devices in the app, then scan the code",
|
||||
refreshInterval: 15,
|
||||
},
|
||||
],
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ export type FieldDescription = {
|
|||
label: string;
|
||||
kind?: "text" | "phone" | "select" | "multi" | "qrcode";
|
||||
getValue?: (token: string) => Promise<string>;
|
||||
getQRCode?: (token: string) => Promise<Record<string, string>>;
|
||||
refreshInterval?: number;
|
||||
getOptions?: (formState: any) => Promise<SelectOption[]>;
|
||||
autogenerated?: "token";
|
||||
|
|
|
|||
|
|
@ -1,3 +1,45 @@
|
|||
import { Service } from "./service";
|
||||
import { NextResponse } from "next/server";
|
||||
import { db } from "@link-stack/bridge-common";
|
||||
import { Configuration, DevicesApi } from "@link-stack/signal-api";
|
||||
// import { revalidatePath } from "next/cache";
|
||||
import { Service, ServiceParams } from "./service";
|
||||
|
||||
export class Signal extends Service {}
|
||||
const fetchNoCache = async (url: string, options = {}) => {
|
||||
// @ts-ignore
|
||||
options.cache = options.cache || "no-store";
|
||||
return fetch(url, options);
|
||||
};
|
||||
|
||||
export class Signal extends Service {
|
||||
async getBot({ params: { token } }: ServiceParams) {
|
||||
const row = await db
|
||||
.selectFrom("SignalBot")
|
||||
.selectAll()
|
||||
.where("token", "=", token as string)
|
||||
.executeTakeFirstOrThrow();
|
||||
const { name } = row;
|
||||
if (!row.verified) {
|
||||
const config = new Configuration({
|
||||
basePath: process.env.BRIDGE_SIGNAL_URL,
|
||||
fetchApi: fetchNoCache,
|
||||
});
|
||||
|
||||
const devicesClient = new DevicesApi(config);
|
||||
const blob: Blob = await devicesClient.v1QrcodelinkGet({
|
||||
deviceName: name.replaceAll(" ", "_"),
|
||||
});
|
||||
const arrayBuffer = await blob.arrayBuffer();
|
||||
const buffer = Buffer.from(arrayBuffer);
|
||||
const qrString = buffer.toString("base64");
|
||||
const qr = `data:${blob.type};base64,${qrString}`;
|
||||
const finalRow = {
|
||||
...row,
|
||||
qr,
|
||||
};
|
||||
|
||||
return NextResponse.json(finalRow);
|
||||
} else {
|
||||
return NextResponse.json(row);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,278 +5,339 @@
|
|||
* This is the Signal Cli REST API documentation.
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0
|
||||
*
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
import * as runtime from '../runtime';
|
||||
import * as runtime from "../runtime";
|
||||
import type {
|
||||
ApiAddDeviceRequest,
|
||||
ApiError,
|
||||
ApiRegisterNumberRequest,
|
||||
ApiUnregisterNumberRequest,
|
||||
ApiVerifyNumberSettings,
|
||||
} from '../models/index';
|
||||
} from "../models/index";
|
||||
import {
|
||||
ApiAddDeviceRequestFromJSON,
|
||||
ApiAddDeviceRequestToJSON,
|
||||
ApiErrorFromJSON,
|
||||
ApiErrorToJSON,
|
||||
ApiRegisterNumberRequestFromJSON,
|
||||
ApiRegisterNumberRequestToJSON,
|
||||
ApiUnregisterNumberRequestFromJSON,
|
||||
ApiUnregisterNumberRequestToJSON,
|
||||
ApiVerifyNumberSettingsFromJSON,
|
||||
ApiVerifyNumberSettingsToJSON,
|
||||
} from '../models/index';
|
||||
ApiAddDeviceRequestFromJSON,
|
||||
ApiAddDeviceRequestToJSON,
|
||||
ApiErrorFromJSON,
|
||||
ApiErrorToJSON,
|
||||
ApiRegisterNumberRequestFromJSON,
|
||||
ApiRegisterNumberRequestToJSON,
|
||||
ApiUnregisterNumberRequestFromJSON,
|
||||
ApiUnregisterNumberRequestToJSON,
|
||||
ApiVerifyNumberSettingsFromJSON,
|
||||
ApiVerifyNumberSettingsToJSON,
|
||||
} from "../models/index";
|
||||
|
||||
export interface V1DevicesNumberPostRequest {
|
||||
number: string;
|
||||
data: ApiAddDeviceRequest;
|
||||
number: string;
|
||||
data: ApiAddDeviceRequest;
|
||||
}
|
||||
|
||||
export interface V1QrcodelinkGetRequest {
|
||||
deviceName: string;
|
||||
qrcodeVersion?: number;
|
||||
deviceName: string;
|
||||
qrcodeVersion?: number;
|
||||
}
|
||||
|
||||
export interface V1RegisterNumberPostRequest {
|
||||
number: string;
|
||||
data?: ApiRegisterNumberRequest;
|
||||
number: string;
|
||||
data?: ApiRegisterNumberRequest;
|
||||
}
|
||||
|
||||
export interface V1RegisterNumberVerifyTokenPostRequest {
|
||||
number: string;
|
||||
token: string;
|
||||
data?: ApiVerifyNumberSettings;
|
||||
number: string;
|
||||
token: string;
|
||||
data?: ApiVerifyNumberSettings;
|
||||
}
|
||||
|
||||
export interface V1UnregisterNumberPostRequest {
|
||||
number: string;
|
||||
data?: ApiUnregisterNumberRequest;
|
||||
number: string;
|
||||
data?: ApiUnregisterNumberRequest;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
export class DevicesApi extends runtime.BaseAPI {
|
||||
|
||||
/**
|
||||
* Links another device to this device. Only works, if this is the master device.
|
||||
* Links another device to this device.
|
||||
*/
|
||||
async v1DevicesNumberPostRaw(requestParameters: V1DevicesNumberPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {
|
||||
if (requestParameters['number'] == null) {
|
||||
throw new runtime.RequiredError(
|
||||
'number',
|
||||
'Required parameter "number" was null or undefined when calling v1DevicesNumberPost().'
|
||||
);
|
||||
}
|
||||
|
||||
if (requestParameters['data'] == null) {
|
||||
throw new runtime.RequiredError(
|
||||
'data',
|
||||
'Required parameter "data" was null or undefined when calling v1DevicesNumberPost().'
|
||||
);
|
||||
}
|
||||
|
||||
const queryParameters: any = {};
|
||||
|
||||
const headerParameters: runtime.HTTPHeaders = {};
|
||||
|
||||
headerParameters['Content-Type'] = 'application/json';
|
||||
|
||||
const response = await this.request({
|
||||
path: `/v1/devices/{number}`.replace(`{${"number"}}`, encodeURIComponent(String(requestParameters['number']))),
|
||||
method: 'POST',
|
||||
headers: headerParameters,
|
||||
query: queryParameters,
|
||||
body: ApiAddDeviceRequestToJSON(requestParameters['data']),
|
||||
}, initOverrides);
|
||||
|
||||
return new runtime.VoidApiResponse(response);
|
||||
/**
|
||||
* Links another device to this device. Only works, if this is the master device.
|
||||
* Links another device to this device.
|
||||
*/
|
||||
async v1DevicesNumberPostRaw(
|
||||
requestParameters: V1DevicesNumberPostRequest,
|
||||
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||
): Promise<runtime.ApiResponse<void>> {
|
||||
if (requestParameters["number"] == null) {
|
||||
throw new runtime.RequiredError(
|
||||
"number",
|
||||
'Required parameter "number" was null or undefined when calling v1DevicesNumberPost().',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Links another device to this device. Only works, if this is the master device.
|
||||
* Links another device to this device.
|
||||
*/
|
||||
async v1DevicesNumberPost(requestParameters: V1DevicesNumberPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {
|
||||
await this.v1DevicesNumberPostRaw(requestParameters, initOverrides);
|
||||
if (requestParameters["data"] == null) {
|
||||
throw new runtime.RequiredError(
|
||||
"data",
|
||||
'Required parameter "data" was null or undefined when calling v1DevicesNumberPost().',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Link device and generate QR code
|
||||
* Link device and generate QR code.
|
||||
*/
|
||||
async v1QrcodelinkGetRaw(requestParameters: V1QrcodelinkGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<string>> {
|
||||
if (requestParameters['deviceName'] == null) {
|
||||
throw new runtime.RequiredError(
|
||||
'deviceName',
|
||||
'Required parameter "deviceName" was null or undefined when calling v1QrcodelinkGet().'
|
||||
);
|
||||
}
|
||||
const queryParameters: any = {};
|
||||
|
||||
const queryParameters: any = {};
|
||||
const headerParameters: runtime.HTTPHeaders = {};
|
||||
|
||||
if (requestParameters['deviceName'] != null) {
|
||||
queryParameters['device_name'] = requestParameters['deviceName'];
|
||||
}
|
||||
headerParameters["Content-Type"] = "application/json";
|
||||
|
||||
if (requestParameters['qrcodeVersion'] != null) {
|
||||
queryParameters['qrcode_version'] = requestParameters['qrcodeVersion'];
|
||||
}
|
||||
const response = await this.request(
|
||||
{
|
||||
path: `/v1/devices/{number}`.replace(
|
||||
`{${"number"}}`,
|
||||
encodeURIComponent(String(requestParameters["number"])),
|
||||
),
|
||||
method: "POST",
|
||||
headers: headerParameters,
|
||||
query: queryParameters,
|
||||
body: ApiAddDeviceRequestToJSON(requestParameters["data"]),
|
||||
},
|
||||
initOverrides,
|
||||
);
|
||||
|
||||
const headerParameters: runtime.HTTPHeaders = {};
|
||||
return new runtime.VoidApiResponse(response);
|
||||
}
|
||||
|
||||
const response = await this.request({
|
||||
path: `/v1/qrcodelink`,
|
||||
method: 'GET',
|
||||
headers: headerParameters,
|
||||
query: queryParameters,
|
||||
}, initOverrides);
|
||||
/**
|
||||
* Links another device to this device. Only works, if this is the master device.
|
||||
* Links another device to this device.
|
||||
*/
|
||||
async v1DevicesNumberPost(
|
||||
requestParameters: V1DevicesNumberPostRequest,
|
||||
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||
): Promise<void> {
|
||||
await this.v1DevicesNumberPostRaw(requestParameters, initOverrides);
|
||||
}
|
||||
|
||||
if (this.isJsonMime(response.headers.get('content-type'))) {
|
||||
return new runtime.JSONApiResponse<string>(response);
|
||||
} else {
|
||||
return new runtime.TextApiResponse(response) as any;
|
||||
}
|
||||
/**
|
||||
* Link device and generate QR code
|
||||
* Link device and generate QR code.
|
||||
*/
|
||||
async v1QrcodelinkGetRaw(
|
||||
requestParameters: V1QrcodelinkGetRequest,
|
||||
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||
): Promise<runtime.ApiResponse<Blob>> {
|
||||
if (requestParameters["deviceName"] == null) {
|
||||
throw new runtime.RequiredError(
|
||||
"deviceName",
|
||||
'Required parameter "deviceName" was null or undefined when calling v1QrcodelinkGet().',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Link device and generate QR code
|
||||
* Link device and generate QR code.
|
||||
*/
|
||||
async v1QrcodelinkGet(requestParameters: V1QrcodelinkGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<string> {
|
||||
const response = await this.v1QrcodelinkGetRaw(requestParameters, initOverrides);
|
||||
return await response.value();
|
||||
const queryParameters: any = {};
|
||||
|
||||
if (requestParameters["deviceName"] != null) {
|
||||
queryParameters["device_name"] = requestParameters["deviceName"];
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a phone number with the signal network.
|
||||
* Register a phone number.
|
||||
*/
|
||||
async v1RegisterNumberPostRaw(requestParameters: V1RegisterNumberPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {
|
||||
if (requestParameters['number'] == null) {
|
||||
throw new runtime.RequiredError(
|
||||
'number',
|
||||
'Required parameter "number" was null or undefined when calling v1RegisterNumberPost().'
|
||||
);
|
||||
}
|
||||
|
||||
const queryParameters: any = {};
|
||||
|
||||
const headerParameters: runtime.HTTPHeaders = {};
|
||||
|
||||
headerParameters['Content-Type'] = 'application/json';
|
||||
|
||||
const response = await this.request({
|
||||
path: `/v1/register/{number}`.replace(`{${"number"}}`, encodeURIComponent(String(requestParameters['number']))),
|
||||
method: 'POST',
|
||||
headers: headerParameters,
|
||||
query: queryParameters,
|
||||
body: ApiRegisterNumberRequestToJSON(requestParameters['data']),
|
||||
}, initOverrides);
|
||||
|
||||
return new runtime.VoidApiResponse(response);
|
||||
if (requestParameters["qrcodeVersion"] != null) {
|
||||
queryParameters["qrcode_version"] = requestParameters["qrcodeVersion"];
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a phone number with the signal network.
|
||||
* Register a phone number.
|
||||
*/
|
||||
async v1RegisterNumberPost(requestParameters: V1RegisterNumberPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {
|
||||
await this.v1RegisterNumberPostRaw(requestParameters, initOverrides);
|
||||
const headerParameters: runtime.HTTPHeaders = {};
|
||||
|
||||
const response = await this.request(
|
||||
{
|
||||
path: `/v1/qrcodelink`,
|
||||
method: "GET",
|
||||
headers: headerParameters,
|
||||
query: queryParameters,
|
||||
},
|
||||
initOverrides,
|
||||
);
|
||||
|
||||
return new runtime.BlobApiResponse(response) as any;
|
||||
}
|
||||
|
||||
/**
|
||||
* Link device and generate QR code
|
||||
* Link device and generate QR code.
|
||||
*/
|
||||
async v1QrcodelinkGet(
|
||||
requestParameters: V1QrcodelinkGetRequest,
|
||||
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||
): Promise<Blob> {
|
||||
const response = await this.v1QrcodelinkGetRaw(
|
||||
requestParameters,
|
||||
initOverrides,
|
||||
);
|
||||
return await response.value();
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a phone number with the signal network.
|
||||
* Register a phone number.
|
||||
*/
|
||||
async v1RegisterNumberPostRaw(
|
||||
requestParameters: V1RegisterNumberPostRequest,
|
||||
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||
): Promise<runtime.ApiResponse<void>> {
|
||||
if (requestParameters["number"] == null) {
|
||||
throw new runtime.RequiredError(
|
||||
"number",
|
||||
'Required parameter "number" was null or undefined when calling v1RegisterNumberPost().',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify a registered phone number with the signal network.
|
||||
* Verify a registered phone number.
|
||||
*/
|
||||
async v1RegisterNumberVerifyTokenPostRaw(requestParameters: V1RegisterNumberVerifyTokenPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<string>> {
|
||||
if (requestParameters['number'] == null) {
|
||||
throw new runtime.RequiredError(
|
||||
'number',
|
||||
'Required parameter "number" was null or undefined when calling v1RegisterNumberVerifyTokenPost().'
|
||||
);
|
||||
}
|
||||
const queryParameters: any = {};
|
||||
|
||||
if (requestParameters['token'] == null) {
|
||||
throw new runtime.RequiredError(
|
||||
'token',
|
||||
'Required parameter "token" was null or undefined when calling v1RegisterNumberVerifyTokenPost().'
|
||||
);
|
||||
}
|
||||
const headerParameters: runtime.HTTPHeaders = {};
|
||||
|
||||
const queryParameters: any = {};
|
||||
headerParameters["Content-Type"] = "application/json";
|
||||
|
||||
const headerParameters: runtime.HTTPHeaders = {};
|
||||
const response = await this.request(
|
||||
{
|
||||
path: `/v1/register/{number}`.replace(
|
||||
`{${"number"}}`,
|
||||
encodeURIComponent(String(requestParameters["number"])),
|
||||
),
|
||||
method: "POST",
|
||||
headers: headerParameters,
|
||||
query: queryParameters,
|
||||
body: ApiRegisterNumberRequestToJSON(requestParameters["data"]),
|
||||
},
|
||||
initOverrides,
|
||||
);
|
||||
|
||||
headerParameters['Content-Type'] = 'application/json';
|
||||
return new runtime.VoidApiResponse(response);
|
||||
}
|
||||
|
||||
const response = await this.request({
|
||||
path: `/v1/register/{number}/verify/{token}`.replace(`{${"number"}}`, encodeURIComponent(String(requestParameters['number']))).replace(`{${"token"}}`, encodeURIComponent(String(requestParameters['token']))),
|
||||
method: 'POST',
|
||||
headers: headerParameters,
|
||||
query: queryParameters,
|
||||
body: ApiVerifyNumberSettingsToJSON(requestParameters['data']),
|
||||
}, initOverrides);
|
||||
/**
|
||||
* Register a phone number with the signal network.
|
||||
* Register a phone number.
|
||||
*/
|
||||
async v1RegisterNumberPost(
|
||||
requestParameters: V1RegisterNumberPostRequest,
|
||||
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||
): Promise<void> {
|
||||
await this.v1RegisterNumberPostRaw(requestParameters, initOverrides);
|
||||
}
|
||||
|
||||
if (this.isJsonMime(response.headers.get('content-type'))) {
|
||||
return new runtime.JSONApiResponse<string>(response);
|
||||
} else {
|
||||
return new runtime.TextApiResponse(response) as any;
|
||||
}
|
||||
/**
|
||||
* Verify a registered phone number with the signal network.
|
||||
* Verify a registered phone number.
|
||||
*/
|
||||
async v1RegisterNumberVerifyTokenPostRaw(
|
||||
requestParameters: V1RegisterNumberVerifyTokenPostRequest,
|
||||
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||
): Promise<runtime.ApiResponse<string>> {
|
||||
if (requestParameters["number"] == null) {
|
||||
throw new runtime.RequiredError(
|
||||
"number",
|
||||
'Required parameter "number" was null or undefined when calling v1RegisterNumberVerifyTokenPost().',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify a registered phone number with the signal network.
|
||||
* Verify a registered phone number.
|
||||
*/
|
||||
async v1RegisterNumberVerifyTokenPost(requestParameters: V1RegisterNumberVerifyTokenPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<string> {
|
||||
const response = await this.v1RegisterNumberVerifyTokenPostRaw(requestParameters, initOverrides);
|
||||
return await response.value();
|
||||
if (requestParameters["token"] == null) {
|
||||
throw new runtime.RequiredError(
|
||||
"token",
|
||||
'Required parameter "token" was null or undefined when calling v1RegisterNumberVerifyTokenPost().',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Disables push support for this device. **WARNING:** If *delete_account* is set to *true*, the account will be deleted from the Signal Server. This cannot be undone without loss.
|
||||
* Unregister a phone number.
|
||||
*/
|
||||
async v1UnregisterNumberPostRaw(requestParameters: V1UnregisterNumberPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {
|
||||
if (requestParameters['number'] == null) {
|
||||
throw new runtime.RequiredError(
|
||||
'number',
|
||||
'Required parameter "number" was null or undefined when calling v1UnregisterNumberPost().'
|
||||
);
|
||||
}
|
||||
const queryParameters: any = {};
|
||||
|
||||
const queryParameters: any = {};
|
||||
const headerParameters: runtime.HTTPHeaders = {};
|
||||
|
||||
const headerParameters: runtime.HTTPHeaders = {};
|
||||
headerParameters["Content-Type"] = "application/json";
|
||||
|
||||
headerParameters['Content-Type'] = 'application/json';
|
||||
const response = await this.request(
|
||||
{
|
||||
path: `/v1/register/{number}/verify/{token}`
|
||||
.replace(
|
||||
`{${"number"}}`,
|
||||
encodeURIComponent(String(requestParameters["number"])),
|
||||
)
|
||||
.replace(
|
||||
`{${"token"}}`,
|
||||
encodeURIComponent(String(requestParameters["token"])),
|
||||
),
|
||||
method: "POST",
|
||||
headers: headerParameters,
|
||||
query: queryParameters,
|
||||
body: ApiVerifyNumberSettingsToJSON(requestParameters["data"]),
|
||||
},
|
||||
initOverrides,
|
||||
);
|
||||
|
||||
const response = await this.request({
|
||||
path: `/v1/unregister/{number}`.replace(`{${"number"}}`, encodeURIComponent(String(requestParameters['number']))),
|
||||
method: 'POST',
|
||||
headers: headerParameters,
|
||||
query: queryParameters,
|
||||
body: ApiUnregisterNumberRequestToJSON(requestParameters['data']),
|
||||
}, initOverrides);
|
||||
if (this.isJsonMime(response.headers.get("content-type"))) {
|
||||
return new runtime.JSONApiResponse<string>(response);
|
||||
} else {
|
||||
return new runtime.TextApiResponse(response) as any;
|
||||
}
|
||||
}
|
||||
|
||||
return new runtime.VoidApiResponse(response);
|
||||
/**
|
||||
* Verify a registered phone number with the signal network.
|
||||
* Verify a registered phone number.
|
||||
*/
|
||||
async v1RegisterNumberVerifyTokenPost(
|
||||
requestParameters: V1RegisterNumberVerifyTokenPostRequest,
|
||||
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||
): Promise<string> {
|
||||
const response = await this.v1RegisterNumberVerifyTokenPostRaw(
|
||||
requestParameters,
|
||||
initOverrides,
|
||||
);
|
||||
return await response.value();
|
||||
}
|
||||
|
||||
/**
|
||||
* Disables push support for this device. **WARNING:** If *delete_account* is set to *true*, the account will be deleted from the Signal Server. This cannot be undone without loss.
|
||||
* Unregister a phone number.
|
||||
*/
|
||||
async v1UnregisterNumberPostRaw(
|
||||
requestParameters: V1UnregisterNumberPostRequest,
|
||||
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||
): Promise<runtime.ApiResponse<void>> {
|
||||
if (requestParameters["number"] == null) {
|
||||
throw new runtime.RequiredError(
|
||||
"number",
|
||||
'Required parameter "number" was null or undefined when calling v1UnregisterNumberPost().',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Disables push support for this device. **WARNING:** If *delete_account* is set to *true*, the account will be deleted from the Signal Server. This cannot be undone without loss.
|
||||
* Unregister a phone number.
|
||||
*/
|
||||
async v1UnregisterNumberPost(requestParameters: V1UnregisterNumberPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {
|
||||
await this.v1UnregisterNumberPostRaw(requestParameters, initOverrides);
|
||||
}
|
||||
const queryParameters: any = {};
|
||||
|
||||
const headerParameters: runtime.HTTPHeaders = {};
|
||||
|
||||
headerParameters["Content-Type"] = "application/json";
|
||||
|
||||
const response = await this.request(
|
||||
{
|
||||
path: `/v1/unregister/{number}`.replace(
|
||||
`{${"number"}}`,
|
||||
encodeURIComponent(String(requestParameters["number"])),
|
||||
),
|
||||
method: "POST",
|
||||
headers: headerParameters,
|
||||
query: queryParameters,
|
||||
body: ApiUnregisterNumberRequestToJSON(requestParameters["data"]),
|
||||
},
|
||||
initOverrides,
|
||||
);
|
||||
|
||||
return new runtime.VoidApiResponse(response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Disables push support for this device. **WARNING:** If *delete_account* is set to *true*, the account will be deleted from the Signal Server. This cannot be undone without loss.
|
||||
* Unregister a phone number.
|
||||
*/
|
||||
async v1UnregisterNumberPost(
|
||||
requestParameters: V1UnregisterNumberPostRequest,
|
||||
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||
): Promise<void> {
|
||||
await this.v1UnregisterNumberPostRaw(requestParameters, initOverrides);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,13 +9,9 @@
|
|||
"node": ">=20"
|
||||
},
|
||||
"files": [
|
||||
"tsconfig.json"
|
||||
],
|
||||
"keywords": [
|
||||
"tsconfig",
|
||||
"typescript",
|
||||
"ts",
|
||||
"config"
|
||||
"tsconfig.json",
|
||||
"tsconfig.next.json",
|
||||
"tsconfig.node.json"
|
||||
],
|
||||
"scripts": {
|
||||
"lint": "echo no lint",
|
||||
|
|
|
|||
|
|
@ -1,24 +1,15 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"incremental": true,
|
||||
"target": "es2020",
|
||||
"lib": ["es2020"],
|
||||
"module": "ES2020",
|
||||
"moduleResolution": "node",
|
||||
"declaration": true,
|
||||
"inlineSourceMap": true,
|
||||
"target": "esnext",
|
||||
"skipLibCheck": true,
|
||||
"strict": true,
|
||||
"allowJs": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"esModuleInterop": true,
|
||||
"module": "esnext",
|
||||
"moduleResolution": "node",
|
||||
"resolveJsonModule": true,
|
||||
"noUnusedLocals": false,
|
||||
"noUnusedParameters": false,
|
||||
"noImplicitReturns": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"traceResolution": false,
|
||||
"listEmittedFiles": false,
|
||||
"listFiles": false,
|
||||
"pretty": true,
|
||||
"experimentalDecorators": true,
|
||||
"emitDecoratorMetadata": true,
|
||||
"types": ["node"]
|
||||
"isolatedModules": true,
|
||||
"incremental": true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
17
packages/typescript-config/tsconfig.next.json
Normal file
17
packages/typescript-config/tsconfig.next.json
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"jsx": "preserve",
|
||||
"lib": ["dom", "dom.iterable", "esnext"],
|
||||
"noEmit": true,
|
||||
"moduleResolution": "bundler",
|
||||
"plugins": [
|
||||
{
|
||||
"name": "next"
|
||||
},
|
||||
{
|
||||
"name": "typescript-eslint-language-service"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
12
packages/typescript-config/tsconfig.node.json
Normal file
12
packages/typescript-config/tsconfig.node.json
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "./dist",
|
||||
"declaration": true,
|
||||
"declarationMap": true,
|
||||
"emitDeclarationOnly": false,
|
||||
"baseUrl": ".",
|
||||
"sourceMap": true,
|
||||
"inlineSources": true
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue