Skip to content

Commit 10670ba

Browse files
committed
feat: user can set a custom url code
1 parent 2f5a8e0 commit 10670ba

File tree

4 files changed

+22
-10
lines changed

4 files changed

+22
-10
lines changed

.env-example

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
MONGO_USER = Mongodb user
2-
MONGO_PASSWORD = Mongodb password
3-
MONGO_DB = Mongodb database
1+
MONGODB_URL = Your mongodb connection URL
42

53
JWT_SECRET = Any string to be secret
64
BASE_URL = App base url

app.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,15 @@ const Url = require("./models/url");
1111

1212
const app = express();
1313

14-
app.use(bodyParser.urlencoded({ extended: false }));
15-
app.use(bodyParser.json());
14+
app.use(express.urlencoded({ extended: false }));
15+
app.use(express.json());
1616
app.use(cors());
1717

18+
require('dotenv').config();
19+
1820
mongoose
1921
.connect(
20-
`mongodb+srv://${process.env.MONGO_USER}:${process.env.MONGO_PASSWORD}@cluster0-jwfcs.mongodb.net/${process.env.MONGO_DB}?retryWrites=true&w=majority`,
22+
process.env.MONGODB_URL,
2123
{
2224
useNewUrlParser: true,
2325
useUnifiedTopology: true,

routes/api/auth.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const auth = require("../../middleware/auth");
77
const User = require("../../models/user");
88

99
router.post("/", async (req, res) => {
10-
const { name, email, password } = req.body;
10+
const { email, password } = req.body;
1111

1212
if (!email || !password) {
1313
return res.status(400).send({ msg: "Please enter all fields" });

routes/api/url.js

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,27 @@ router.get("/", middleAuth, async (req, res) => {
2727
});
2828

2929
router.post("/compress", middleAuth, async (req, res) => {
30-
const { longUrl, lastDate } = req.body;
30+
const { longUrl, lastDate, customCode } = req.body;
31+
32+
console.log(validUrl.isUri(longUrl));
33+
console.log(longUrl, lastDate);
3134

32-
// const baseUrl = "http://localhost:5000";
3335
const baseUrl = process.env.BASE_URL;
3436
if (!validUrl.isUri(baseUrl)) {
3537
return res.status(400).send({ msg: "Invalid Base Url" });
3638
}
3739

38-
const urlCode = shortId.generate();
40+
let urlCode;
41+
if (customCode) {
42+
urlCode = customCode;
43+
44+
if (await Url.findOne({ code: urlCode })) {
45+
res.status(409).send({ msg: "This code is already in use, try another code" });
46+
};
47+
48+
} else {
49+
urlCode = shortId.generate();
50+
}
3951

4052
if (validUrl.isUri(longUrl)) {
4153
try {

0 commit comments

Comments
 (0)