Skip to content

Commit a56697d

Browse files
committed
boiler plate labeling
1 parent e91ae73 commit a56697d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+1053
-509
lines changed

.env.example

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@ STRIPE_PRODUCT_PREMIUM_YEARLY_PRICE_ID=price_premium_yearly_price_id_here
1717
# Development/Testing Flags, for convenience
1818
SKIP_OTP=true
1919
EMAIL_USE_CONSOLE=true
20-
GCP_USE_FAKE_GCS_SERVER=true
20+
USE_MOCK_GCP_STORAGE=true
21+
LABELER_SKIP_CLOUD_TASK=true

deno.json

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,24 @@
11
{
22
"workspace": [
33
"./packages/app",
4-
"./packages/core"
4+
"./packages/core",
5+
"./packages/db",
6+
"./packages/settings",
7+
"./packages/storage",
8+
"./packages/labeler"
59
],
610
"nodeModulesDir": "auto",
711
"lock": false,
812
"tasks": {
913
"dev:app": "deno task --config ./packages/app/deno.json dev",
1014
"dev:core": "deno task --config ./packages/core/deno.json dev",
11-
"dev:runner": "deno task --config ./packages/runner/deno.json dev",
15+
"dev:labeler": "deno task --config ./packages/labeler/deno.json dev",
1216
"build:app": "deno task --config ./packages/app/deno.json build",
1317
"build:core": "deno task --config ./packages/core/deno.json build",
14-
"test": "STRIPE_USE_MOCK=true GCP_USE_FAKE_GCS_SERVER=true deno test -A",
18+
"build:labeler": "deno task --config ./packages/labeler/deno.json build",
19+
"test": "STRIPE_USE_MOCK=true USE_MOCK_GCP_STORAGE=true deno test -A",
1520
"db:docker": "docker container rm stackcore-pg --force || true && docker run --name stackcore-pg -e POSTGRES_PASSWORD=password -e POSTGRES_USER=user -e POSTGRES_DB=core -p 5432:5432 -d postgres:17",
16-
"db:migrate": "deno task --config ./packages/core/deno.json migrate -A",
17-
"stripe:create-products": "deno run -A --env-file=.env ./packages/core/src/stripe/scripts/createProducts.ts",
21+
"db:migrate": "deno run -A ./packages/db/src/scripts/migrate.ts",
1822
"stripe:cli": "docker run --rm -it --env-file=.env stripe/stripe-cli:latest",
1923
"stripe:forward": "deno task stripe:cli listen --forward-to http://host.docker.internal:4000/billing/webhook",
2024
"stripe:mock": "docker run --rm -it -p 12111-12112:12111-12112 stripe/stripe-mock:latest",

packages/app/src/pages/workspaces/workspace/subscription.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,10 @@ export default function WorkspaceSubscription() {
161161
// Check if changing to a higher tier product
162162
const isUpgradingProduct =
163163
(currentProduct === WorkspaceApiTypes.BASIC_PRODUCT &&
164-
[WorkspaceApiTypes.PRO_PRODUCT, WorkspaceApiTypes.PREMIUM_PRODUCT]
164+
[
165+
WorkspaceApiTypes.PRO_PRODUCT as string,
166+
WorkspaceApiTypes.PREMIUM_PRODUCT as string,
167+
]
165168
.includes(newProduct)) ||
166169
(currentProduct === WorkspaceApiTypes.PRO_PRODUCT &&
167170
newProduct === WorkspaceApiTypes.PREMIUM_PRODUCT);

packages/core/deno.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@
33
"exports": "./src/index.ts",
44
"tasks": {
55
"dev": "deno run --env-file=../../.env -A --watch src/index.ts",
6-
"migrate": "deno run -A src/db/scripts/migrate.ts",
7-
"build": "deno compile --allow-all --include src/db/migrations --output ./dist/core ./src/index.ts",
6+
"build": "deno compile --allow-all --include ../db/src/migrations --output ./dist/core ./src/index.ts",
87
"email": "email dev -d src/email/templates"
98
},
109
"imports": {
11-
"@google-cloud/storage": "npm:@google-cloud/storage@^7.16.0",
10+
"@stackcore/db": "../db/src/index.ts",
11+
"@stackcore/settings": "../settings/src/index.ts",
12+
"@stackcore/storage": "../storage/src/index.ts",
1213
"@oak/oak": "jsr:@oak/oak@^17.1.4",
1314
"@sentry/deno": "npm:@sentry/deno@^9.28.1",
1415
"@std/assert": "jsr:@std/assert@1",
1516
"@std/expect": "jsr:@std/expect@^1.0.16",
16-
"@std/path": "jsr:@std/path@^1.0.9",
1717
"@types/html-to-text": "npm:@types/html-to-text@^9.0.4",
1818
"@types/pg": "npm:@types/pg@^8.15.2",
1919
"@types/pg-pool": "npm:@types/pg-pool@^2.0.6",

packages/core/src/api/auth/router.test.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
import { assertEquals, assertGreater, assertNotEquals } from "@std/assert";
22
import api from "../index.ts";
3-
import { db, destroyKyselyDb, initKyselyDb } from "../../db/database.ts";
3+
import {
4+
ADMIN_ROLE,
5+
db,
6+
destroyKyselyDb,
7+
initKyselyDb,
8+
type User,
9+
} from "@stackcore/db";
410
import { AuthService, secretCryptoKey } from "./service.ts";
511
import { resetTables } from "../../testHelpers/db.ts";
612
import { getNumericDate, verify } from "djwt";
7-
import settings from "../../settings.ts";
8-
import type { User } from "../../db/models/user.ts";
13+
import settings from "@stackcore/settings";
914
import { createTestUserAndToken } from "../../testHelpers/auth.ts";
10-
import { ADMIN_ROLE } from "../../db/models/member.ts";
1115
import { prepareMe, prepareRequestOtp, prepareVerifyOtp } from "./types.ts";
1216

1317
Deno.test("request otp, invalid email", async () => {

packages/core/src/api/auth/service.ts

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,8 @@
11
import { create, getNumericDate, verify } from "djwt";
2-
import { db } from "../../db/database.ts";
3-
import settings from "../../settings.ts";
2+
import { ADMIN_ROLE, db, type User } from "@stackcore/db";
3+
import settings from "@stackcore/settings";
44
import { sendOtpEmail, sendWelcomeEmail } from "../../email/index.ts";
55
import { StripeService } from "../../stripe/index.ts";
6-
import {
7-
BASIC_PRODUCT,
8-
MONTHLY_BILLING_CYCLE,
9-
shouldHaveAccess,
10-
} from "../../db/models/workspace.ts";
11-
import { ADMIN_ROLE } from "../../db/models/member.ts";
12-
import type { User } from "../../db/models/user.ts";
136
import { type Session, sessionSchema } from "./types.ts";
147

158
export const secretCryptoKey = await crypto.subtle.importKey(
@@ -191,12 +184,14 @@ export class AuthService {
191184
);
192185
const subscription = await stripeService.createSubscription(
193186
customer.id,
194-
BASIC_PRODUCT,
195-
MONTHLY_BILLING_CYCLE,
187+
settings.STRIPE.PRODUCTS.BASIC.NAME,
188+
settings.STRIPE.MONTHLY_BILLING_CYCLE,
196189
settings.STRIPE.BILLING_THRESHOLD_BASIC,
197190
);
198191

199-
const accessEnabled = shouldHaveAccess(subscription.status);
192+
const accessEnabled = stripeService.shouldHaveAccess(
193+
subscription.status,
194+
);
200195

201196
await trx
202197
.updateTable("workspace")

0 commit comments

Comments
 (0)