20 lines
487 B
TypeScript
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),
|
|
);
|