Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 48 additions & 23 deletions controllers/cheatBoardController.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,39 +2,64 @@ import CheatBoard from "../models/cheatBoardModel.js"
import bigPromise from "../middlewares/bigPromise.js"

export const generateCheatcode=bigPromise(async(req,res,next)=>{
const {text}=req.body;
const {text,customcode}=req.body;
if(!text){
return res.status(400).json({
success:false,
message:"Text field is requireed !"
message:"Text field is required !"
})
}

function generate(n) {
var add = 1, max = 12 - add; // 12 is the min safe number Math.random() can generate without it starting to pad the end with zeros.

if ( n > max ) {
return generate(max) + generate(n - max);

// if no customecode
if(!customcode){
function generate(n) {
var add = 1, max = 12 - add; // 12 is the min safe number Math.random() can generate without it starting to pad the end with zeros.

if ( n > max ) {
return generate(max) + generate(n - max);
}

max = Math.pow(10, n+add);
var min = max/10; // Math.pow(10, n) basically
var number = Math.floor( Math.random() * (max - min + 1) ) + min;
return ("" + number).substring(add);
}

max = Math.pow(10, n+add);
var min = max/10; // Math.pow(10, n) basically
var number = Math.floor( Math.random() * (max - min + 1) ) + min;
return ("" + number).substring(add);

const cheatcode = generate(4);
const content = await CheatBoard.create({
text,
cheatcode
})
res.status(200).json({
success:true,
message:"Text generated !",
data:content
})
}

const cheatcode = generate(4);


const content = await CheatBoard.create({
text,
cheatcode
})
// if there is a customcode
else{

res.status(200).json({
success:true,
message:"Text generated !"
})
const foundCustomCode = await CheatBoard.findOne({customcode:customcode})
if(foundCustomCode){
return res.status(501).json({
success:false,
message:"this customcode already exist, please enter unique custom code"
})
}
const content = await CheatBoard.create({
text,
customcode
})
res.status(200).json({
success:true,
message:"Text generated !",
data:content
})
}


})


Expand Down
13 changes: 12 additions & 1 deletion models/cheatBoardModel.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { text } from "express";
import mongoose from "mongoose";

const cheatBoardSchema= new mongoose.Schema({
Expand All @@ -7,7 +8,17 @@ const cheatBoardSchema= new mongoose.Schema({
},
cheatcode:{
type:Number
}
},
customcode:{
type:String,
minlength:1,
maxlength:6
},
expireAt: {
type: Date,
default: Date.now,
index: { expires: '2m' },
},
},
{timestamps:true}
);
Expand Down
2 changes: 1 addition & 1 deletion routes/cheatBoardRoutes.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ const router=express.Router();
import { fetchTextFromCode, generateCheatcode } from "../controllers/cheatBoardController.js";

router.route("/generateCode").get(generateCheatcode);
router.route("/fetchCode").post(fetchTextFromCode);
router.route("/generateCode").post(fetchTextFromCode);

export default router;