| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import { Handlers } from "$fresh/server.ts";
- import {
- setToken,
- checkToken,
- makeErrorResponse,
- makeSuccessResponse,
- getCryptoString,
- } from "utils/server.ts";
- import { find, insert } from "utils/db.ts";
- export const handler: Handlers = {
- GET(req: Request) {
- const tokenUserId = checkToken(req);
- if (tokenUserId) {
- const user = find(
- "User",
- {
- id: tokenUserId,
- },
- ["name", "email"]
- );
- if (user.length > 0) {
- return makeSuccessResponse({
- name: user[0][0] as string,
- email: user[0][1] as string,
- });
- }
- }
- return makeErrorResponse();
- },
- async POST(req: Request) {
- const reqJson = await req.json();
- if (reqJson.email && reqJson.password) {
- const user = find(
- "User",
- {
- email: reqJson.email,
- },
- ["id"]
- );
- if (user.length > 0) {
- // Generate token
- const token = await getCryptoString(
- reqJson.email + new Date().toString(),
- "MD5"
- );
- // Store token
- const newToken = insert("Token", {
- token,
- user_id: user[0][0] as string,
- });
- if (newToken.length > 0) {
- const successResponse = makeSuccessResponse(true);
- setToken(successResponse, token);
- return successResponse;
- }
- }
- }
- return makeErrorResponse();
- },
- };
|