upload to codehub
This commit is contained in:
37
config/passport.js
Normal file
37
config/passport.js
Normal 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);
|
||||
});
|
||||
});
|
||||
}
|
||||
56
config/razorpay-service.js
Normal file
56
config/razorpay-service.js
Normal 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
63
config/s3-config.js
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user