Skip to content

Commit 79ef139

Browse files
committed
formatting
1 parent bc44140 commit 79ef139

File tree

8 files changed

+61
-49
lines changed

8 files changed

+61
-49
lines changed

apps/web/actions/videos/get-status.ts

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
import { db } from "@cap/database";
44
import { users, videos } from "@cap/database/schema";
55
import type { VideoMetadata } from "@cap/database/types";
6+
import { provideOptionalAuth, VideosPolicy } from "@cap/web-backend";
7+
import { Policy, type Video } from "@cap/web-domain";
68
import { eq } from "drizzle-orm";
9+
import { Effect, Exit } from "effect";
10+
import * as EffectRuntime from "@/lib/server";
711
import { isAiGenerationEnabled } from "@/utils/flags";
812
import { transcribeVideo } from "../../lib/transcribe";
913
import { generateAiMetadata } from "./generate-ai-metadata";
10-
import { Effect, Exit } from "effect";
11-
import { provideOptionalAuth, VideosPolicy } from "@cap/web-backend";
12-
import { Policy, Video } from "@cap/web-domain";
13-
import * as EffectRuntime from "@/lib/server";
1414

1515
const MAX_AI_PROCESSING_TIME = 10 * 60 * 1000;
1616

@@ -33,14 +33,11 @@ export async function getVideoStatus(
3333
const videosPolicy = yield* VideosPolicy;
3434

3535
return yield* Effect.promise(() =>
36-
db().select().from(videos).where(eq(videos.id, videoId))
36+
db().select().from(videos).where(eq(videos.id, videoId)),
3737
).pipe(Policy.withPublicPolicy(videosPolicy.canView(videoId)));
38-
}).pipe(
39-
provideOptionalAuth,
40-
EffectRuntime.runPromiseExit,
41-
);
38+
}).pipe(provideOptionalAuth, EffectRuntime.runPromiseExit);
4239

43-
if (Exit.isFailure(exit)) return { success: false }
40+
if (Exit.isFailure(exit)) return { success: false };
4441

4542
const video = exit.value[0];
4643
if (!video) throw new Error("Video not found");

apps/web/app/api/playlist/route.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class Api extends HttpApi.make("CapWebApi").add(
4141
.addError(HttpApiError.InternalServerError)
4242
.addError(HttpApiError.NotFound),
4343
),
44-
) { }
44+
) {}
4545

4646
const ApiLive = HttpApiBuilder.api(Api).pipe(
4747
Layer.provide(

apps/web/app/embed/[videoId]/page.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,18 @@ import {
99
} from "@cap/database/schema";
1010
import type { VideoMetadata } from "@cap/database/types";
1111
import { buildEnv } from "@cap/env";
12+
import { provideOptionalAuth, Videos, VideosPolicy } from "@cap/web-backend";
13+
import { Policy, type Video } from "@cap/web-domain";
1214
import { eq } from "drizzle-orm";
15+
import { Effect, Option } from "effect";
1316
import type { Metadata } from "next";
1417
import Link from "next/link";
1518
import { notFound } from "next/navigation";
19+
import * as EffectRuntime from "@/lib/server";
1620
import { transcribeVideo } from "@/lib/transcribe";
1721
import { isAiGenerationEnabled } from "@/utils/flags";
1822
import { EmbedVideo } from "./_components/EmbedVideo";
1923
import { PasswordOverlay } from "./_components/PasswordOverlay";
20-
import { Effect, Option } from "effect";
21-
import { provideOptionalAuth, Videos, VideosPolicy } from "@cap/web-backend";
22-
import { Policy, Video } from "@cap/web-domain";
23-
import * as EffectRuntime from "@/lib/server";
2424

2525
export const dynamic = "auto";
2626
export const dynamicParams = true;

apps/web/app/s/[videoId]/page.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@ import {
1313
import type { VideoMetadata } from "@cap/database/types";
1414
import { buildEnv } from "@cap/env";
1515
import { Logo } from "@cap/ui";
16+
import { provideOptionalAuth, Videos } from "@cap/web-backend";
17+
import { VideosPolicy } from "@cap/web-backend/src/Videos/VideosPolicy";
18+
import { Policy, type Video } from "@cap/web-domain";
1619
import { eq, type InferSelectModel, sql } from "drizzle-orm";
20+
import { Effect, Option } from "effect";
1721
import type { Metadata } from "next";
1822
import { headers } from "next/headers";
1923
import Link from "next/link";
@@ -22,16 +26,12 @@ import { generateAiMetadata } from "@/actions/videos/generate-ai-metadata";
2226
import { getVideoAnalytics } from "@/actions/videos/get-analytics";
2327
import { getDashboardData } from "@/app/(org)/dashboard/dashboard-data";
2428
import { createNotification } from "@/lib/Notification";
29+
import * as EffectRuntime from "@/lib/server";
2530
import { transcribeVideo } from "@/lib/transcribe";
2631
import { isAiGenerationEnabled } from "@/utils/flags";
2732
import { PasswordOverlay } from "./_components/PasswordOverlay";
2833
import { ShareHeader } from "./_components/ShareHeader";
2934
import { Share } from "./Share";
30-
import { VideosPolicy } from "@cap/web-backend/src/Videos/VideosPolicy";
31-
import { Effect, Option } from "effect";
32-
import { Policy, Video } from "@cap/web-domain";
33-
import * as EffectRuntime from "@/lib/server";
34-
import { provideOptionalAuth, Videos } from "@cap/web-backend";
3535

3636
export const dynamic = "auto";
3737
export const dynamicParams = true;

apps/web/lib/server.ts

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import "server-only";
22

33
import { db } from "@cap/database";
4+
import { decrypt } from "@cap/database/crypto";
45
import {
56
Database,
67
DatabaseError,
@@ -10,7 +11,7 @@ import {
1011
Videos,
1112
VideosPolicy,
1213
} from "@cap/web-backend";
13-
import { Video, type HttpAuthMiddleware } from "@cap/web-domain";
14+
import { type HttpAuthMiddleware, Video } from "@cap/web-domain";
1415
import * as NodeSdk from "@effect/opentelemetry/NodeSdk";
1516
import {
1617
type HttpApi,
@@ -19,11 +20,10 @@ import {
1920
HttpServer,
2021
} from "@effect/platform";
2122
import { Cause, Effect, Exit, Layer, ManagedRuntime, Option } from "effect";
22-
import { cookies } from "next/headers";
2323
import { isNotFoundError } from "next/dist/client/components/not-found";
24+
import { cookies } from "next/headers";
2425
import { allowedOrigins } from "@/utils/cors";
2526
import { getTracingConfig } from "./tracing";
26-
import { decrypt } from "@cap/database/crypto";
2727

2828
const DatabaseLive = Layer.sync(Database, () => ({
2929
execute: (cb) =>
@@ -46,8 +46,7 @@ const CookiePasswordAttachmentLive = Layer.effect(
4646
);
4747
return { password };
4848
}),
49-
)
50-
49+
);
5150

5251
export const Dependencies = Layer.mergeAll(
5352
S3Buckets.Default,
@@ -60,8 +59,12 @@ export const Dependencies = Layer.mergeAll(
6059
// purposefully not exposed
6160
const EffectRuntime = ManagedRuntime.make(Dependencies);
6261

63-
export const runPromise = <A, E>(effect: Effect.Effect<A, E, Layer.Layer.Success<typeof Dependencies>>) =>
64-
EffectRuntime.runPromiseExit(effect.pipe(Effect.provide(CookiePasswordAttachmentLive))).then(res => {
62+
export const runPromise = <A, E>(
63+
effect: Effect.Effect<A, E, Layer.Layer.Success<typeof Dependencies>>,
64+
) =>
65+
EffectRuntime.runPromiseExit(
66+
effect.pipe(Effect.provide(CookiePasswordAttachmentLive)),
67+
).then((res) => {
6568
if (Exit.isFailure(res)) {
6669
if (Cause.isDieType(res.cause) && isNotFoundError(res.cause.defect)) {
6770
throw res.cause.defect;
@@ -70,17 +73,25 @@ export const runPromise = <A, E>(effect: Effect.Effect<A, E, Layer.Layer.Success
7073
throw res;
7174
}
7275

73-
return res.value
74-
})
76+
return res.value;
77+
});
7578

76-
export const runPromiseExit = <A, E>(effect: Effect.Effect<A, E, Layer.Layer.Success<typeof Dependencies>>) =>
77-
EffectRuntime.runPromiseExit(effect.pipe(Effect.provide(CookiePasswordAttachmentLive))).then(res => {
78-
if (Exit.isFailure(res) && Cause.isDieType(res.cause) && isNotFoundError(res.cause.defect)) {
79+
export const runPromiseExit = <A, E>(
80+
effect: Effect.Effect<A, E, Layer.Layer.Success<typeof Dependencies>>,
81+
) =>
82+
EffectRuntime.runPromiseExit(
83+
effect.pipe(Effect.provide(CookiePasswordAttachmentLive)),
84+
).then((res) => {
85+
if (
86+
Exit.isFailure(res) &&
87+
Cause.isDieType(res.cause) &&
88+
isNotFoundError(res.cause.defect)
89+
) {
7990
throw res.cause.defect;
8091
}
8192

82-
return res
83-
})
93+
return res;
94+
});
8495

8596
const cors = HttpApiBuilder.middlewareCors({
8697
allowedOrigins,
@@ -102,6 +113,8 @@ export const apiToHandler = (
102113
Layer.provideMerge(Dependencies),
103114
Layer.merge(HttpServer.layerContext),
104115
Layer.provide(cors),
105-
Layer.provide(HttpApiBuilder.middleware(Effect.provide(CookiePasswordAttachmentLive))),
116+
Layer.provide(
117+
HttpApiBuilder.middleware(Effect.provide(CookiePasswordAttachmentLive)),
118+
),
106119
HttpApiBuilder.toWebHandler,
107120
);

packages/web-backend/src/Auth.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import * as Db from "@cap/database/schema";
33
import { CurrentUser, HttpAuthMiddleware } from "@cap/web-domain";
44
import { HttpApiError, type HttpApp } from "@effect/platform";
55
import * as Dz from "drizzle-orm";
6-
import { Cause, Effect, Layer, Option } from "effect";
6+
import { type Cause, Effect, Layer, Option } from "effect";
77

8-
import { Database, DatabaseError } from "./Database";
8+
import { Database, type DatabaseError } from "./Database";
99

1010
export const getCurrentUser = Effect.gen(function* () {
1111
const db = yield* Database;
@@ -59,11 +59,7 @@ export const HttpAuthMiddlewareLive = Layer.effect(
5959

6060
export const provideOptionalAuth = <A, E, R>(
6161
app: Effect.Effect<A, E, R>,
62-
): Effect.Effect<
63-
A,
64-
E | DatabaseError | Cause.UnknownException,
65-
R | Database
66-
> =>
62+
): Effect.Effect<A, E | DatabaseError | Cause.UnknownException, R | Database> =>
6763
Effect.gen(function* () {
6864
const user = yield* getCurrentUser;
6965
return yield* user.pipe(

packages/web-backend/src/Organisations/OrganisationsRepo.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@ export class OrganisationsRepo extends Effect.Service<OrganisationsRepo>()(
1919
.from(Db.organizationMembers)
2020
.leftJoin(
2121
Db.sharedVideos,
22-
Dz.eq(Db.organizationMembers.organizationId, Db.sharedVideos.organizationId),
22+
Dz.eq(
23+
Db.organizationMembers.organizationId,
24+
Db.sharedVideos.organizationId,
25+
),
2326
)
2427
.where(
2528
Dz.and(
@@ -31,4 +34,4 @@ export class OrganisationsRepo extends Effect.Service<OrganisationsRepo>()(
3134
};
3235
}),
3336
},
34-
) { }
37+
) {}

packages/web-domain/src/Video.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,15 @@ export class Video extends Schema.Class<Video>("Video")({
4141
*/
4242
export class VideoPasswordAttachment extends Context.Tag(
4343
"VideoPasswordAttachment",
44-
)<VideoPasswordAttachment, { password: Option.Option<string> }>() { }
44+
)<VideoPasswordAttachment, { password: Option.Option<string> }>() {}
4545

4646
export class VerifyVideoPasswordError extends Schema.TaggedError<VerifyVideoPasswordError>()(
4747
"VerifyVideoPasswordError",
4848
{
4949
id: VideoId,
5050
cause: Schema.Literal("not-provided", "wrong-password"),
5151
},
52-
) { }
52+
) {}
5353

5454
export const verifyPassword = (video: Video, password: Option.Option<string>) =>
5555
Effect.gen(function* () {
@@ -59,7 +59,10 @@ export const verifyPassword = (video: Video, password: Option.Option<string>) =>
5959

6060
if (Option.isNone(password)) return;
6161

62-
if (Option.isNone(passwordAttachment) || Option.isNone(passwordAttachment.value.password))
62+
if (
63+
Option.isNone(passwordAttachment) ||
64+
Option.isNone(passwordAttachment.value.password)
65+
)
6366
return yield* new VerifyVideoPasswordError({
6467
id: video.id,
6568
cause: "not-provided",
@@ -75,7 +78,7 @@ export const verifyPassword = (video: Video, password: Option.Option<string>) =>
7578
export class NotFoundError extends Schema.TaggedError<NotFoundError>()(
7679
"VideoNotFoundError",
7780
{},
78-
) { }
81+
) {}
7982

8083
export class VideoRpcs extends RpcGroup.make(
8184
Rpc.make("VideoDelete", {
@@ -86,4 +89,4 @@ export class VideoRpcs extends RpcGroup.make(
8689
payload: VideoId,
8790
error: Schema.Union(NotFoundError, InternalError, PolicyDeniedError),
8891
}).middleware(RpcAuthMiddleware),
89-
) { }
92+
) {}

0 commit comments

Comments
 (0)