upload to codehub

This commit is contained in:
WDI-Ideas
2025-07-15 15:54:43 +05:30
commit 68ab9c960d
2640 changed files with 638592 additions and 0 deletions

37
config/passport.js Normal file
View File

@@ -0,0 +1,37 @@
const LocalStrategy = require('passport-local').Strategy;
const User = require('../models/user');
const bcrypt = require('bcryptjs');
module.exports = function(passport){
// Local Strategy
passport.use(new LocalStrategy(function(username, password, done){
// Match Username
let query = {username:username};
User.findOne(query, function(err, user){
if(err) throw err;
if(!user){
return done(null, false, {message: 'No user found'});
}
// Match Password
bcrypt.compare(password, user.password, function(err, isMatch){
if(err) throw err;
if(isMatch){
return done(null, user);
} else {
return done(null, false, {message: 'Wrong password'});
}
});
});
}));
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
}

View File

@@ -0,0 +1,56 @@
const Razorpay = require('razorpay');
// Initialize Razorpay client with your API key and secret
const razorpay = new Razorpay({
key_id: process.env.RAZORPAY_KEY_ID,
key_secret: process.env.RAZORPAY_KEY_SECRET
});
// Function to create an order using Razorpay API
const createRazorpayOrder = async (amount, recipid) => {
try {
const options = {
amount: amount * 100,
currency: 'INR',
receipt: recipid,
};
const order = await razorpay.orders.create(options);
return order;
} catch (error) {
console.error("Error creating Razorpay order:", error);
throw error;
}
}
// Function to process a refund using Razorpay API
const processRazorpayRefund = async (paymentId, amount) => {
try {
const refund = await razorpay.payments.refund(paymentId, { amount });
console.log("Refund processed successfully:", refund);
return refund;
} catch (error) {
console.error("Error processing Razorpay refund:", error);
throw error;
}
}
// Function to fetch details of an order using order ID
const getOrderDetails = async (orderId) => {
try {
const order = await razorpay.orders.fetch(orderId);
console.log("Order details:", order);
return order;
} catch (error) {
console.error("Error fetching order details:", error);
throw error;
}
}
// Export the function for creating Razorpay orders
module.exports = {
createRazorpayOrder,
processRazorpayRefund,
getOrderDetails
};

63
config/s3-config.js Normal file
View File

@@ -0,0 +1,63 @@
const aws = require('aws-sdk');
aws.config.update({
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
region: process.env.AWS_REGION
});
// Create an S3 instance
const s3 = new aws.S3();
async function uploadFileToS3(fileData, directoryPath, mimetype) {
return new Promise((resolve, reject) => {
const params = {
Bucket: process.env.AWS_BUCKET_NAME,
Key: `${directoryPath}`,
Body: fileData,
ACL: 'public-read',
ContentType: mimetype
};
s3.upload(params, (err, data) => {
if (err) {
console.error("Error uploading to S3:", err);
reject(err);
} else {
console.log("Upload successful:", data.Location);
resolve(data.Location);
}
});
});
}
async function deleteFileToS3(imageUrl) {
try {
return new Promise(async (resolve, reject) => {
// Extract the key from the imageUrl
const key = imageUrl.split('/').slice(3).join('/');
// Construct parameters for deleteObject operation
const deleteParams = {
Bucket: process.env.AWS_BUCKET_NAME,
Key: key,
};
// Delete the object from S3 bucket
await s3.deleteObject(deleteParams).promise();
resolve();
});
} catch (error) {
console.error("Error occurred while deleting file from S3:", error);
resolve();
}
}
module.exports = {
uploadFileToS3,
deleteFileToS3,
s3
}