Major changes + version upgrade to v1.1.0
This commit is contained in:
parent
576db6522c
commit
1e1e7dc74e
|
@ -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)
|
||||
})
|
||||
}
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,6 +20,10 @@ const minifiedUrlSchema = new Schema(
|
|||
views: {
|
||||
type: Number,
|
||||
},
|
||||
createdBy: {
|
||||
type: String,
|
||||
default: 'Anonymous',
|
||||
}
|
||||
},
|
||||
{ timestamp: true }
|
||||
)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "url-minify-api",
|
||||
"version": "1.0.0",
|
||||
"version": "1.1.0",
|
||||
"description": "URL Minify Backend",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
|
|
|
@ -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;
|
|
@ -0,0 +1 @@
|
|||
NODE_ENV=dev
|
|
@ -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
|
||||
}),
|
||||
});
|
||||
|
|
|
@ -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>
|
||||
)
|
||||
}
|
|
@ -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:
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"lockfileVersion": 1
|
||||
}
|
Loading…
Reference in New Issue