Files
music-repo/packages/common/src/api.ts

20 lines
487 B
TypeScript

import { Api } from "make-api";
import { Schema as S } from "@effect/schema";
import { UserId } from "common";
import { pipe } from "effect";
export const Login = pipe(
Api.make("POST", "login"),
Api.requestBodyJson(S.Struct({
username: S.NonEmptyString,
password: S.NonEmptyString,
})),
Api.responseBodyJson(200, S.Struct({
userId: UserId,
username: S.NonEmptyString,
admin: S.Boolean,
})),
Api.responseBodyText(400, S.String),
Api.responseBodyText(401, S.String),
);