diff --git a/client/src/components/Apps/GoogleDrive/Modal/Form.js b/client/src/components/Apps/GoogleDrive/Modal/Form.js index 5b5e978a..27c80399 100644 --- a/client/src/components/Apps/GoogleDrive/Modal/Form.js +++ b/client/src/components/Apps/GoogleDrive/Modal/Form.js @@ -1,45 +1,65 @@ -import React from 'react'; +import React from "react"; import styles from "../GoogleDrive.module.css"; - +import axios from "axios"; class NameForm extends React.Component { - constructor(props) { - super(props); - this.state = { value: '' }; + constructor(props) { + super(props); + this.state = { value: "" }; - this.handleChange = this.handleChange.bind(this); - this.handleSubmit = this.handleSubmit.bind(this); - } + this.handleChange = this.handleChange.bind(this); + this.handleSubmit = this.handleSubmit.bind(this); + } - handleChange(event) { - this.setState({ value: event.target.value }); - } + handleChange(event) { + this.setState({ value: event.target.value }); + } - handleSubmit(event) { - alert('A comment was submitted: ' + this.state.value); - event.preventDefault(); - } + handleSubmit(event) { + // alert("A comment was submitted: " + this.state.value); + event.preventDefault(); + axios + .post("/tools/addtools", { + comment: this.state.value, + tool: "googledrive", + }) + .then((resp) => { + alert("A comment was submitted: " + resp); + }) + .catch((error) => { + alert("An error occured: " + error); + }); + } - render() { - return ( -
-
- - -
- -
-
-
- ); - } + render() { + return ( +
+
+ + +
+ +
+
+
+ ); + } } -export default NameForm \ No newline at end of file +export default NameForm; diff --git a/server/src/config/routing.js b/server/src/config/routing.js index d06d1763..48827ab4 100644 --- a/server/src/config/routing.js +++ b/server/src/config/routing.js @@ -2,6 +2,11 @@ const express = require("express"); const morgan = require("morgan"); const compression = require("compression"); const cors = require("cors"); +const corsOptions = { + origin: "*", + credentials: true, //access-control-allow-credentials:true + optionSuccessStatus: 200, +}; const { NotFoundError } = require("../lib/errors"); const errorMiddleware = require("../middlewares/error"); @@ -14,7 +19,7 @@ module.exports = (app) => { app.use(morgan("dev")); app.use(express.json()); app.use(express.urlencoded({ extended: false })); - app.use(cors()); + app.use(cors(corsOptions)); app.use("/api", routes); diff --git a/server/src/controllers/googledrive/index.js b/server/src/controllers/googledrive/index.js index b3fbef79..7b3f44ff 100644 --- a/server/src/controllers/googledrive/index.js +++ b/server/src/controllers/googledrive/index.js @@ -27,7 +27,6 @@ class GoogleDriveController { ); } async getFilesList(req, res) { - console.log(REDIRECT_URI); try { const r = await drive.files.list(); const { data } = r; @@ -41,7 +40,7 @@ class GoogleDriveController { } } async getData(req, res) { - const resp = await fetch('https://jsonplaceholder.typicode.com/posts'); + const resp = await fetch("https://jsonplaceholder.typicode.com/posts"); const json = await resp.json(); res.send(response("Data info returned successfully", json)); } diff --git a/server/src/controllers/tools.js b/server/src/controllers/tools.js index 7ce03807..e2553bd8 100644 --- a/server/src/controllers/tools.js +++ b/server/src/controllers/tools.js @@ -1,22 +1,76 @@ const tools = require("../services/tools"); const response = require("../utils/response"); +const axios = require("axios"); +const fs = require("fs"); +//store +const toolsData = []; class ToolsController { async getAllAvailableTools(req, res) { const origin = req.headers.referer || req.headers.host; const availableTools = await tools.getAll(req.query, origin); - res.send(response("Available Tools returned successfully", availableTools)); } async getRecommendedTools(req, res) { const origin = req.headers.referer || req.headers.host; const recommendedTools = await tools.getRecommendedTools(origin); - res.send( response("Recommended Tools returned successfully", recommendedTools) ); } + async getOrganizationTools(req, res) { + const { plugin_id, coll_name, org_id } = req.body; + axios + .get( + `https://api.zuri.chat/data/read/${plugin_id}/${coll_name}/${org_id}` + ) + .then((resp) => { + res.send(resp.data); + }) + .catch((err) => { + res.status(500).json({ + statusCode: 500, + message: err.message, + }); + }); + } + + async addTool(req, res) { + const options = { + headers: { + "content-type": "application/json", + "cache-control": "no-cache", + }, + }; + axios + .post( + "https://api.zuri.chat/v1/data/write", + { + plugin_id: req.body.plugin_id, + organization_id: req.body.organization_id, + collection_name: "organization_tools", + payload: { + plugin_id: req.body.plugin_id, + organization_id: req.body.organization_id, + message: req.body.message, + }, + bulk_write: false, + object_id: "", + filter: {}, + }, + options + ) + .then((resp) => { + res.send("This tool has been added successfully"); + }) + .catch((err) => { + res.status(500).json({ + statusCode: 500, + message: err.message, + }); + }); + } } module.exports = new ToolsController(); diff --git a/server/src/routes/externaltools.js b/server/src/routes/externaltools.js index e28395e0..33c210a2 100644 --- a/server/src/routes/externaltools.js +++ b/server/src/routes/externaltools.js @@ -4,6 +4,8 @@ const externaltools = require("../controllers/tools"); module.exports = function () { router.get("/tools", externaltools.getAllAvailableTools); router.get("/tools/recommended", externaltools.getRecommendedTools); + router.get("/tools/organizationtools", externaltools.getOrganizationTools); + router.post("/tools/addtools", externaltools.addTool); return router; }; diff --git a/server/src/routes/googledrive/index.js b/server/src/routes/googledrive/index.js index 8af137ce..aca197f5 100644 --- a/server/src/routes/googledrive/index.js +++ b/server/src/routes/googledrive/index.js @@ -4,8 +4,7 @@ const googleDrvieController = require("../../controllers/googledrive/index"); module.exports = function () { router.get("/googledrive/info", googleDrvieController.index); - router.get("/googledrive/data", googleDrvieController.getData) - + router.get("/googledrive/data", googleDrvieController.getData); router.get("/googledrive/get-files-list", googleDrvieController.getFilesList); return router; };