diff --git a/api/modules/getData.js b/api/modules/getData.js index 87e970f..e58a20b 100644 --- a/api/modules/getData.js +++ b/api/modules/getData.js @@ -4,8 +4,8 @@ const fetch = require('cross-fetch'); const config = require('../../src/config.js'); const fs = require('fs'); -const screenshotDirectory = config.API.STORAGE_LOCATION + '/Webmarker/screenshot\'s/'; -const pdfDirectory = config.API.STORAGE_LOCATION + '/Webmarker/pdf\'s/'; +const screenshotDirectory = config.API.STORAGE_LOCATION + '/LinkWarden/screenshot\'s/'; +const pdfDirectory = config.API.STORAGE_LOCATION + '/LinkWarden/pdf\'s/'; if (!fs.existsSync(screenshotDirectory)){ fs.mkdirSync(screenshotDirectory, { recursive: true }); diff --git a/api/package-lock.json b/api/package-lock.json index 87981ac..b119dd1 100644 --- a/api/package-lock.json +++ b/api/package-lock.json @@ -4623,7 +4623,8 @@ "ws": { "version": "8.6.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", - "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==" + "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", + "requires": {} }, "xdg-basedir": { "version": "4.0.0", diff --git a/api/server.js b/api/server.js index 13f8f1c..912d44e 100644 --- a/api/server.js +++ b/api/server.js @@ -3,7 +3,8 @@ const app = express(); const { MongoClient } = require('mongodb'); const cors = require('cors'); const config = require('../src/config.js'); -const getData = require('./modules/getData.js') +const getData = require('./modules/getData.js'); +const fs = require('fs'); const port = config.API.PORT; @@ -22,6 +23,14 @@ app.get('/api', async (req, res) => { res.send(data); }); +app.get('/screenshots/:id', async (req, res) => { + res.sendFile(config.API.STORAGE_LOCATION + '/LinkWarden/screenshot\'s/' + req.params.id); +}); + +app.get('/pdfs/:id', async (req, res) => { + res.sendFile(config.API.STORAGE_LOCATION + '/LinkWarden/pdf\'s/' + req.params.id); +}); + app.post('/api', async (req, res) => { const pageToVisit = req.body.link; @@ -77,6 +86,19 @@ async function deleteDoc(doc) { const list = db.collection(collection); const result = await list.deleteOne({"_id": doc}); + fs.unlink(config.API.STORAGE_LOCATION + '/LinkWarden/screenshot\'s/' + doc + '.png', (err) => { + if (err) { + console.log(err); + } + }); + + fs.unlink(config.API.STORAGE_LOCATION + '/LinkWarden/pdf\'s/' + doc + '.pdf', (err) => { + if (err) { + console.log(err); + } + }); + + return result; } diff --git a/src/componets/AddItem.js b/src/componets/AddItem.js index a4d5455..66cff53 100644 --- a/src/componets/AddItem.js +++ b/src/componets/AddItem.js @@ -1,8 +1,7 @@ import { useState } from 'react'; -import { nanoid } from 'nanoid' import '../styles/AddItem.css'; -import config from '../config'; import TagSelection from './TagSelection'; +import addItem from '../modules/addItem'; const AddItem = ({onExit, reFetch, tags}) => { const [name, setName] = useState(''); @@ -22,54 +21,6 @@ const AddItem = ({onExit, reFetch, tags}) => { setTag(value.map(e => e.value.toLowerCase())); } - async function submitBookmark() { - function isValidHttpUrl(string) { - let url; - - try { - url = new URL(string); - } catch (_) { - return false; - } - - return url.protocol === "http:" || url.protocol === "https:"; - } - - if(name !== '' && isValidHttpUrl(link) && tag !== '') { - const ADDRESS = config.API.ADDRESS + ":" + config.API.PORT; - fetch(ADDRESS + "/api", { - - // Adding method type - method: "POST", - - // Adding body or contents to send - body: JSON.stringify({ - _id: nanoid(), - name: name, - title: '', - link: link, - tag: tag - }), - - // Adding headers to the request - headers: { - "Content-type": "application/json; charset=UTF-8" - } - }) - .then(res => res.text()) - .then(message => {console.log(message)}) - .then(() => reFetch()); - - onExit(); - } else if(name !== '' && link !== '' && tag !== '') { - alert('Please make sure the link is valid.\n\n(i.e. starts with "http"/"https")'); - } - - else { - alert('Please fill all fields and make sure the link is valid.\n\n(i.e. starts with "http"/"https")'); - } - } - function abort(e) { if (e.target.className === "add-overlay") { onExit(); @@ -88,11 +39,11 @@ const AddItem = ({onExit, reFetch, tags}) => {