| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import {
- checkToken,
- getCryptoString,
- makeErrorResponse,
- makeSuccessResponse,
- setToken,
- } from "utils/server.ts";
- import { find, insert } from "utils/db.ts";
- import { define } from "utils/state.ts";
- export const handler = define.handlers({
- GET(ctx) {
- const tokenUserId = checkToken(ctx.req);
- if (tokenUserId) {
- const user = find("User", { id: tokenUserId }, ["name", "email"]);
- if (user.length > 0) {
- return makeSuccessResponse({
- name: user[0]["name"] as string,
- email: user[0]["email"] as string,
- });
- }
- }
- return makeErrorResponse();
- },
- async POST(ctx) {
- const req = ctx.req;
- 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]["id"] as string,
- });
- if (newToken.length > 0) {
- const successResponse = makeSuccessResponse(true);
- setToken(successResponse, token);
- return successResponse;
- }
- }
- }
- return makeErrorResponse();
- },
- });
|