Extend and fix session management, /me API
This commit is contained in:
@@ -17,3 +17,13 @@ export const Login = pipe(
|
||||
Api.responseBodyText(400, S.String),
|
||||
Api.responseBodyText(401, S.String),
|
||||
);
|
||||
|
||||
export const Me = pipe(
|
||||
Api.make("GET", "me"),
|
||||
Api.responseBodyJson(200, S.Struct({
|
||||
userId: UserId,
|
||||
username: S.NonEmptyString,
|
||||
admin: S.Boolean,
|
||||
})),
|
||||
Api.responseBodyText(401, S.String),
|
||||
);
|
||||
|
||||
@@ -2,6 +2,12 @@ import { Schema as S } from "@effect/schema";
|
||||
import { AttachmentId, BooleanFromNumber, PieceId, RequestId, SessionId, Sha256, UserId } from "common";
|
||||
import { Brand as B, pipe } from "effect";
|
||||
|
||||
export const SessionData = S.Struct({
|
||||
userId: UserId,
|
||||
});
|
||||
|
||||
export type SessionData = typeof SessionData.Type;
|
||||
|
||||
export const SystemInformation = S.Struct({
|
||||
createdBy: S.Union(UserId, S.Null),
|
||||
createdAt: S.DateTimeUtc,
|
||||
@@ -47,11 +53,13 @@ export const Piece = pipe(
|
||||
S.extend(SystemInformation),
|
||||
);
|
||||
|
||||
export const Session = S.Struct({
|
||||
sessionId: SessionId,
|
||||
userId: UserId,
|
||||
expiresAt: S.DateTimeUtc,
|
||||
});
|
||||
export const Session = pipe(
|
||||
S.Struct({
|
||||
sessionId: SessionId,
|
||||
expiresAt: S.DateTimeUtc,
|
||||
}),
|
||||
S.extend(SessionData),
|
||||
);
|
||||
|
||||
export const User = S.Struct({
|
||||
userId: UserId,
|
||||
|
||||
Reference in New Issue
Block a user