mirror of
https://github.com/wasp-lang/open-saas.git
synced 2025-11-23 12:58:02 +01:00
format
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
import { type User } from 'wasp/entities';
|
||||
import { faker } from '@faker-js/faker';
|
||||
import type { PrismaClient } from '@prisma/client';
|
||||
import { getSubscriptionPaymentPlanIds, SubscriptionStatus } from '../../payment/plans';
|
||||
import { faker } from "@faker-js/faker";
|
||||
import type { PrismaClient } from "@prisma/client";
|
||||
import { type User } from "wasp/entities";
|
||||
import {
|
||||
getSubscriptionPaymentPlanIds,
|
||||
SubscriptionStatus,
|
||||
} from "../../payment/plans";
|
||||
|
||||
type MockUserData = Omit<User, 'id'>;
|
||||
type MockUserData = Omit<User, "id">;
|
||||
|
||||
/**
|
||||
* This function, which we've imported in `app.db.seeds` in the `main.wasp` file,
|
||||
@@ -11,7 +14,9 @@ type MockUserData = Omit<User, 'id'>;
|
||||
* For more info see: https://wasp.sh/docs/data-model/backends#seeding-the-database
|
||||
*/
|
||||
export async function seedMockUsers(prismaClient: PrismaClient) {
|
||||
await Promise.all(generateMockUsersData(50).map((data) => prismaClient.user.create({ data })));
|
||||
await Promise.all(
|
||||
generateMockUsersData(50).map((data) => prismaClient.user.create({ data })),
|
||||
);
|
||||
}
|
||||
|
||||
function generateMockUsersData(numOfUsers: number): MockUserData[] {
|
||||
@@ -21,14 +26,17 @@ function generateMockUsersData(numOfUsers: number): MockUserData[] {
|
||||
function generateMockUserData(): MockUserData {
|
||||
const firstName = faker.person.firstName();
|
||||
const lastName = faker.person.lastName();
|
||||
const subscriptionStatus = faker.helpers.arrayElement<SubscriptionStatus | null>([
|
||||
...Object.values(SubscriptionStatus),
|
||||
null,
|
||||
]);
|
||||
const subscriptionStatus =
|
||||
faker.helpers.arrayElement<SubscriptionStatus | null>([
|
||||
...Object.values(SubscriptionStatus),
|
||||
null,
|
||||
]);
|
||||
const now = new Date();
|
||||
const createdAt = faker.date.past({ refDate: now });
|
||||
const timePaid = faker.date.between({ from: createdAt, to: now });
|
||||
const credits = subscriptionStatus ? 0 : faker.number.int({ min: 0, max: 10 });
|
||||
const credits = subscriptionStatus
|
||||
? 0
|
||||
: faker.number.int({ min: 0, max: 10 });
|
||||
const hasUserPaidOnStripe = !!subscriptionStatus || credits > 3;
|
||||
return {
|
||||
email: faker.internet.email({ firstName, lastName }),
|
||||
@@ -38,8 +46,14 @@ function generateMockUserData(): MockUserData {
|
||||
credits,
|
||||
subscriptionStatus,
|
||||
lemonSqueezyCustomerPortalUrl: null,
|
||||
paymentProcessorUserId: hasUserPaidOnStripe ? `cus_test_${faker.string.uuid()}` : null,
|
||||
datePaid: hasUserPaidOnStripe ? faker.date.between({ from: createdAt, to: timePaid }) : null,
|
||||
subscriptionPlan: subscriptionStatus ? faker.helpers.arrayElement(getSubscriptionPaymentPlanIds()) : null,
|
||||
paymentProcessorUserId: hasUserPaidOnStripe
|
||||
? `cus_test_${faker.string.uuid()}`
|
||||
: null,
|
||||
datePaid: hasUserPaidOnStripe
|
||||
? faker.date.between({ from: createdAt, to: timePaid })
|
||||
: null,
|
||||
subscriptionPlan: subscriptionStatus
|
||||
? faker.helpers.arrayElement(getSubscriptionPaymentPlanIds())
|
||||
: null,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
import { HttpError } from 'wasp/server';
|
||||
import * as z from 'zod';
|
||||
import { HttpError } from "wasp/server";
|
||||
import * as z from "zod";
|
||||
|
||||
export function ensureArgsSchemaOrThrowHttpError<Schema extends z.ZodType>(
|
||||
schema: Schema,
|
||||
rawArgs: unknown
|
||||
rawArgs: unknown,
|
||||
): z.infer<Schema> {
|
||||
const parseResult = schema.safeParse(rawArgs);
|
||||
if (!parseResult.success) {
|
||||
console.error(parseResult.error);
|
||||
throw new HttpError(400, 'Operation arguments validation failed', { errors: parseResult.error.errors });
|
||||
throw new HttpError(400, "Operation arguments validation failed", {
|
||||
errors: parseResult.error.errors,
|
||||
});
|
||||
} else {
|
||||
return parseResult.data;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user