Files
myDrive/backend/controllers/googleFolder.ts
T
2020-11-25 16:16:09 -05:00

238 lines
5.3 KiB
TypeScript

import { Request, Response } from "express";
import {UserInterface} from "../models/user";
import GoogleFolderService from "../services/GoogleFolderService";
import { googleQueryType } from "../utils/createQueryGoogle";
const googleFolderService = new GoogleFolderService();
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 GoogleFolderController {
constructor() {
}
getList = async(req: RequestTypeFullUser, res: Response) => {
if (!req.user) {
return;
}
try {
const user = req.user;
const query = req.query as unknown as googleQueryType;
const folderList = await googleFolderService.getList(user, query);
res.send(folderList);
} catch (e) {
console.log("Get Google Folder List Error", e);
const code = 500;
res.status(code).send()
}
}
getGoogleMongoList = async(req: RequestTypeFullUser, res: Response) => {
if (!req.user) {
return;
}
try {
const user = req.user;
const query = req.query;
const folderList = await googleFolderService.getGoogleMongoList(user, query);
res.send(folderList);
} catch (e) {
console.log("Get Google Mongo Folder List Error", e);
const code = 500;
res.status(code).send()
}
}
getInfo = async(req: RequestTypeFullUser, res: Response) => {
if (!req.user) {
return;
}
try {
const user = req.user;
const id = req.params.id;
const folderInfo = await googleFolderService.getInfo(user, id);
res.send(folderInfo);
} catch (e) {
console.log("Get Google Info Error", e);
const code = 500;
res.status(code).send()
}
}
getSubFolderList = async(req: RequestTypeFullUser, res: Response) => {
if (!req.user) {
return;
}
try {
const user = req.user;
const id: any = req.query.id;
const nameAndIDList = await googleFolderService.getSubFolderList(user, id);
res.send(nameAndIDList);
} catch (e) {
console.log("Get Google Subfolder Error", e);
const code = 500;
res.status(code).send()
}
}
getSubfolderFullList = async(req: RequestTypeFullUser, res: Response) => {
if (!req.user) {
return;
}
try {
const user = req.user;
const id: any = req.query.id;
const fullSubfolderList = await googleFolderService.getSubFolderFullList(user, id);
res.send(fullSubfolderList);
} catch (e) {
console.log("Get Google Full Subfolder Error", e);
const code = 500;
res.status(code).send()
}
}
renameFolder = async(req: RequestTypeFullUser, res: Response) => {
if (!req.user) {
return;
}
try {
const user = req.user;
const folderID = req.body.id;
const title = req.body.title
await googleFolderService.renameFolder(user, folderID, title);
res.send();
} catch (e) {
console.log("Rename Google Folder Error", e);
const code = 500;
res.status(code).send()
}
}
removeFolder = async(req: RequestTypeFullUser, res: Response) => {
if (!req.user) {
return;
}
try {
const user = req.user;
const folderID = req.body.id;
await googleFolderService.removeFolder(user, folderID)
res.send();
} catch (e) {
console.log("Remove Google Folder Error", e);
const code = 500;
res.status(code).send()
}
}
upload = async(req: RequestTypeFullUser, res: Response) => {
if (!req.user) {
return;
}
try {
const user = req.user;
let {name, parent} = req.body;
const createdFolder = await googleFolderService.upload(user, name, parent);
res.send(createdFolder);
} catch (e) {
console.log("Upload Google Folder Error", e);
const code = 500;
res.status(code).send()
}
}
moveFolder = async(req: RequestTypeFullUser, res: Response) => {
if (!req.user) {
return;
}
try {
const user = req.user;
const folderID = req.body.id;
const parentID = req.body.parent;
await googleFolderService.moveFolder(user, folderID, parentID);
res.send();
} catch (e) {
console.log("Move Folder Google Error", e);
const code = 500;
res.status(code).send()
}
}
}
export default GoogleFolderController;