Major changes + version upgrade to v1.1.0

This commit is contained in:
Jyotirmoy Bandyopadhayaya 2022-02-13 10:34:30 +05:30
parent 576db6522c
commit 1e1e7dc74e
10 changed files with 91 additions and 22 deletions

View File

@ -1,10 +1,11 @@
const Minfy = require("../models/minifed_urls")
const base_url = 'https://minfy.xyz/'
const nanoid = require("nanoid")
module.exports.getAllData = async (req, res) => {
Minfy.find()
Minfy.find({})
.then((data)=>{
res.send(data)
res.json(data)
})
.catch((err)=>{
console.error(err)
@ -21,7 +22,7 @@ module.exports.getURLData = async (req, res) => {
alias: alias
})
data.minifiedUrl = base_url + data.alias
return res.send(data)
return res.json(data)
} catch (err) {
console.error(err)
res.sendStatus(500)
@ -40,10 +41,11 @@ module.exports.findUrlById = async (req, res) => {
}
module.exports.addURL = async (req, res) => {
req.body.minifiedUrl = base_url + req.body.alias
req.body.alias = nanoid(5);
req.body.minifiedUrl = base_url +
Minfy.create(req.body)
.then((data)=>{
res.send(data)
res.json(data)
})
.catch((err)=>{
console.error(err)
@ -75,3 +77,27 @@ module.exports.updateUrlData = async (req,res) =>{
res.sendStatus(500)
})
}
module.exports.addURLAuthed = async (req, res) => {
const {
alias,
originalUrl
} = req.body;
var createdBy = req.user.data.email;
// console.log(req.user);
const minifiedUrl = base_url + alias
const data = {
alias,
originalUrl,
minifiedUrl,
createdBy
}
Minfy.create(data)
.then((data) => {
res.send(data)
})
.catch((err) => {
console.error(err)
res.sendStatus(500)
})
}

View File

@ -19,6 +19,7 @@ module.exports.register = async ({ body: { email, password } }, res) => {
if (!validationError) return res.send(user.generateJWT());
}catch(e){
console.log(e)
return res.sendStatus(500)
}
}
@ -28,9 +29,10 @@ module.exports.login = async ({ body: { email, password } }, res) => {
let user = await User.findOne({email}).catch((err) => console.error(err));
if (user && user.validatePassword(password))
return res.send(user.generateJWT());
return res.json({access_token:user.generateJWT()});
return res.status(401).send(null);
}catch(err) {
console.log(err)
return res.sendStatus(500)
}
}

View File

@ -20,6 +20,10 @@ const minifiedUrlSchema = new Schema(
views: {
type: Number,
},
createdBy: {
type: String,
default: 'Anonymous',
}
},
{ timestamp: true }
)

View File

@ -1,6 +1,6 @@
{
"name": "url-minify-api",
"version": "1.0.0",
"version": "1.1.0",
"description": "URL Minify Backend",
"main": "index.js",
"scripts": {

View File

@ -1,18 +1,18 @@
const {Router} = require("express")
const controller = require("../controllers/minify")
const {auth} = require("../middlewares/auth")
const router = Router();
router.get("/all", controller.getAllData)
router.get("/id/:id", controller.findUrlById)
router.get("/alias/:alias", controller.getURLData)
router.post("/add",controller.addURL)
router.post("/add/custom",auth,controller.addURLAuthed)
router.get("/id/:id", controller.findUrlById)
router.patch('/edit/:id', auth, controller.updateUrlData)
router.delete('/delete/:id',controller.deleteUrlData)
router.patch('/edit/:id', controller.updateUrlData)
router.delete('/delete/:id',auth,controller.deleteUrlData)
module.exports = router;

1
frontend/.env Normal file
View File

@ -0,0 +1 @@
NODE_ENV=dev

View File

@ -1,9 +1,6 @@
import { borderRadius, padding } from '@mui/system';
import React from 'react';
import { render } from 'react-dom';
import HomeSectionStyle from "./HomeSection.style";
import Link from 'next/link';
import { nanoid } from 'nanoid';
const head = {
fontSize: '5rem',
@ -37,7 +34,8 @@ const searchBox = {
function HomeSection(props) {
const setMinfy = async () => {
const res = await fetch('http://localhost:5000/minify/add', {
var API_URL = 'http://localhost:5000';
const res = await fetch(`${API_URL}/minify/add`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
@ -45,7 +43,6 @@ function HomeSection(props) {
},
body: JSON.stringify({
alias: nanoid(5),
originalUrl: props.longUrl
}),
});

21
frontend/pages/[id].js Normal file
View File

@ -0,0 +1,21 @@
import { useState } from 'react'
import Head from 'next/head'
import HomeSection from "components/HomeSection/homeSection"
import NavBar from "components/NavBar";
import Features from 'components/Features'
export default function Home() {
return (
<div className={""}>
<Head>
<title>URL MiniFy</title>
<link rel="icon" href="/favicon.ico" />
</Head>
<main className={"main-bg"}>
Not Found
</main>
</div>
)
}

View File

@ -263,6 +263,27 @@
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.3.0.tgz#949995a05c0d8801be7e0a594f775f1dbaa0d893"
integrity sha512-CA3MAZBTxVsF6SkfkHXDerkhcQs0QPofy43eFdbWJJkZiq3SfiaH1msOkac59rQaqto5EqWnASboY1dBuKen5w==
"@fortawesome/fontawesome-svg-core@^1.3.0":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.3.0.tgz#343fac91fa87daa630d26420bfedfba560f85885"
integrity sha512-UIL6crBWhjTNQcONt96ExjUnKt1D68foe3xjEensLDclqQ6YagwCRYVQdrp/hW0ALRp/5Fv/VKw+MqTUWYYvPg==
dependencies:
"@fortawesome/fontawesome-common-types" "^0.3.0"
"@fortawesome/free-brands-svg-icons@^6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.0.0.tgz#c69830ec2fad38c95945867f4e6927bf33cce6f8"
integrity sha512-BIhsy2YeGuk8+KQwpqmyayQDWo1lvGMHsMIE+z5ApPRgV7T+zGhmNzYVoBT4IrJMC6ep5WpGrxoHX+IvNxHnkw==
dependencies:
"@fortawesome/fontawesome-common-types" "^0.3.0"
"@fortawesome/free-regular-svg-icons@^6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.0.0.tgz#f3cb91dac643472fe8138024b93fbfbdf05675cc"
integrity sha512-lYK6oyQL8HwZUAVWGqF7TGuwQBVfphNBVTdvPSD3h4gmQfGazm/xcwg3kmtcRycu3y6QspOC7hPXSoJbVqSYCw==
dependencies:
"@fortawesome/fontawesome-common-types" "^0.3.0"
"@fortawesome/free-solid-svg-icons@^6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.0.0.tgz#bed4a501b631c6cfa35c09830f7cb63ffca1589d"
@ -705,9 +726,9 @@ ms@2.1.2:
resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
nanoid@^3.1.30:
nanoid@^3.1.30, nanoid@^3.2.0:
version "3.2.0"
resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c"
integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==
next@12.0.9:

3
package-lock.json generated
View File

@ -1,3 +0,0 @@
{
"lockfileVersion": 1
}