Files
myDrive/backend/controllers/userGoogle.ts
T
2020-11-23 21:51:08 -05:00

101 lines
2.1 KiB
TypeScript

import { Request, Response } from "express";
import { UserInterface } from "../models/user";
import UserServiceGoogle from "../services/UserGoogle";
const UserProviderGoogle = new UserServiceGoogle();
type userAccessType = {
_id: string,
emailVerified: boolean,
email: string,
s3Enabled: boolean,
}
interface RequestTypeRefresh extends Request {
user?: UserInterface,
encryptedToken?: string
}
interface RequestTypeFullUser extends Request {
user?: UserInterface,
encryptedToken?: string
}
interface RequestType extends Request {
user?: userAccessType,
encryptedToken?: string
}
class UserGoogleController {
constructor() {
}
createGoogleStorageURL = async(req: RequestTypeFullUser, res: Response) => {
if (!req.user) {
return;
}
try {
const user = req.user;
const googleData = req.body;
const url = await UserProviderGoogle.createGoogleStorageURL(user, googleData);
res.send(url);
} catch (e) {
const code = 500;
console.log("Create Google Storage URL Error", e);
res.status(code).send(e);
}
}
addGoogleStorage = async(req: RequestTypeFullUser, res: Response) => {
if (!req.user) {
return;
}
try {
const user = req.user;
const code = req.body.code;
await UserProviderGoogle.addGoogleStorage(user, code);
res.send();
} catch (e) {
const code = 500;
console.log("Add Google Storage Error", e);
res.status(code).send(e);
}
}
removeGoogleStorage = async(req: RequestTypeFullUser, res: Response) => {
if (!req.user) {
return;
}
try {
const user = req.user
await UserProviderGoogle.removeGoogleStorage(user);
res.send();
} catch (e) {
const code = 500;
console.log("Remove Google Storage Error", e);
res.status(code).send(e);
}
}
}
export default UserGoogleController;