1
0
Fork 0
mirror of synced 2024-06-28 02:50:50 +12:00

Types for sending quota triggered email

This commit is contained in:
Rory Powell 2022-10-04 10:31:40 +01:00
parent fe619cbe09
commit d84b3b95d0
8 changed files with 32 additions and 24 deletions

View file

@ -1 +1,2 @@
export * from "./user" export * from "./user"
export * from "./license"

View file

@ -0,0 +1,11 @@
import { QuotaUsage } from "../../documents"
export interface GetLicenseRequest {
quotaUsage: QuotaUsage
}
export interface QuotaUsageTriggeredRequest {
percentage: number
name: string
resetDate: string
}

View file

@ -1,4 +1,5 @@
import { Feature, Hosting, PlanType, Quotas } from "../../sdk" import { Feature, Hosting, PlanType, Quotas } from "../../sdk"
import { QuotaUsage } from "../global"
export interface CreateAccount { export interface CreateAccount {
email: string email: string
@ -42,6 +43,7 @@ export interface Account extends CreateAccount {
licenseKey?: string licenseKey?: string
licenseKeyActivatedAt?: number licenseKeyActivatedAt?: number
licenseOverrides?: LicenseOverrides licenseOverrides?: LicenseOverrides
quotaUsage?: QuotaUsage
} }
export interface PasswordAccount extends Account { export interface PasswordAccount extends Account {

View file

@ -16,9 +16,7 @@ class InternalAPIClient {
constructor(appId?: string) { constructor(appId?: string) {
if (!env.BUDIBASE_SERVER_URL) { if (!env.BUDIBASE_SERVER_URL) {
throw new Error( throw new Error("Must set BUDIBASE_SERVER_URL env var")
"Must set BUDIBASE_SERVER_URL env var"
)
} }
this.host = `${env.BUDIBASE_SERVER_URL}/api` this.host = `${env.BUDIBASE_SERVER_URL}/api`
this.appId = appId this.appId = appId
@ -55,4 +53,4 @@ class InternalAPIClient {
put = this.apiCall("PUT") put = this.apiCall("PUT")
} }
export default InternalAPIClient export default InternalAPIClient

View file

@ -1,6 +1,4 @@
import { import { Application } from "@budibase/server/api/controllers/public/mapping/types"
Application,
} from "@budibase/server/api/controllers/public/mapping/types"
import { App } from "@budibase/types" import { App } from "@budibase/types"
import { Response } from "node-fetch" import { Response } from "node-fetch"
import InternalAPIClient from "./InternalAPIClient" import InternalAPIClient from "./InternalAPIClient"
@ -37,9 +35,7 @@ export default class AppApi {
return [response, json] return [response, json]
} }
async create( async create(body: any): Promise<[Response, Partial<App>]> {
body: any
): Promise<[Response, Partial<App>]> {
const response = await this.api.post(`/applications`, { body }) const response = await this.api.post(`/applications`, { body })
const json = await response.json() const json = await response.json()
return [response, json] return [response, json]

View file

@ -9,11 +9,11 @@ export default class AuthApi {
} }
async login(): Promise<[Response, any]> { async login(): Promise<[Response, any]> {
const response = await this.api.post(`/global/auth/default/login`, { const response = await this.api.post(`/global/auth/default/login`, {
body: { body: {
username: process.env.BB_ADMIN_USER_EMAIL, username: process.env.BB_ADMIN_USER_EMAIL,
password: process.env.BB_ADMIN_USER_PASSWORD password: process.env.BB_ADMIN_USER_PASSWORD,
} },
}) })
const cookie = response.headers.get("set-cookie") const cookie = response.headers.get("set-cookie")
this.api.cookie = cookie as any this.api.cookie = cookie as any

View file

@ -1,10 +1,9 @@
import generator from "../../generator" import generator from "../../generator"
import { import { Application } from "@budibase/server/api/controllers/public/mapping/types"
Application,
} from "@budibase/server/api/controllers/public/mapping/types"
const generate = (
const generate = (overrides: Partial<Application> = {}): Partial<Application> => ({ overrides: Partial<Application> = {}
): Partial<Application> => ({
name: generator.word(), name: generator.word(),
url: `/${generator.word()}`, url: `/${generator.word()}`,
...overrides, ...overrides,

View file

@ -24,14 +24,14 @@ describe("Internal API - /applications endpoints", () => {
useTemplate: "true", useTemplate: "true",
templateName: "Near Miss Register", templateName: "Near Miss Register",
templateKey: "app/near-miss-register", templateKey: "app/near-miss-register",
templateFile: undefined templateFile: undefined,
}) })
} }
it("GET - fetch applications", async () => { it("GET - fetch applications", async () => {
await config.applications.create({ await config.applications.create({
...generateApp(), ...generateApp(),
useTemplate: false useTemplate: false,
}) })
const [response, apps] = await config.applications.fetch() const [response, apps] = await config.applications.fetch()
expect(response).toHaveStatusCode(200) expect(response).toHaveStatusCode(200)
@ -57,7 +57,7 @@ describe("Internal API - /applications endpoints", () => {
expect(publish).toEqual({ expect(publish).toEqual({
_id: expect.any(String), _id: expect.any(String),
appUrl: app.url, appUrl: app.url,
status: "SUCCESS" status: "SUCCESS",
}) })
}) })
@ -70,7 +70,8 @@ describe("Internal API - /applications endpoints", () => {
config.applications.api.appId = app.appId config.applications.api.appId = app.appId
// check preview renders // check preview renders
const [previewResponse, previewRenders] = await config.applications.canRender() const [previewResponse, previewRenders] =
await config.applications.canRender()
expect(previewResponse).toHaveStatusCode(200) expect(previewResponse).toHaveStatusCode(200)
expect(previewRenders).toBe(true) expect(previewRenders).toBe(true)
@ -79,8 +80,8 @@ describe("Internal API - /applications endpoints", () => {
// check published app renders // check published app renders
config.applications.api.appId = db.getProdAppID(app.appId) config.applications.api.appId = db.getProdAppID(app.appId)
const [publishedAppResponse, publishedAppRenders] = await config.applications.canRender() const [publishedAppResponse, publishedAppRenders] =
await config.applications.canRender()
expect(publishedAppRenders).toBe(true) expect(publishedAppRenders).toBe(true)
}) })
}) })