login.tsx 858 B

1234567891011121314151617181920212223242526272829303132
  1. import { Handlers } from "$fresh/server.ts";
  2. import {
  3. checkToken,
  4. makeErrorResponse,
  5. makeSuccessResponse,
  6. setToken,
  7. } from "utils/server.ts";
  8. import { find } from "utils/db.ts";
  9. export const handler: Handlers = {
  10. GET(req: Request) {
  11. // Mock a default user
  12. if (checkToken(req)) {
  13. return makeSuccessResponse({
  14. name: "Jerry Liao",
  15. email: "jerryliao26@gmail.com",
  16. });
  17. }
  18. return makeErrorResponse();
  19. },
  20. async POST(req: Request) {
  21. const reqJson = await req.json();
  22. if (reqJson.email && reqJson.password) {
  23. if (find("User", { email: reqJson.email, password: reqJson.password })) {
  24. const successResponse = makeSuccessResponse(true);
  25. setToken(successResponse);
  26. return successResponse;
  27. }
  28. }
  29. return makeErrorResponse();
  30. },
  31. };