Allow users to upload photos using an admin's Cloudinary configuration

Update Cloudinary configuration retrieval to use an admin's settings for all users and modify media upload to utilize the admin's user ID.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/vZocxw2
This commit is contained in:
michaelschal committed 2025-10-14 10:18:31 +00:00
1 parent 26d02dd744
commit f98da13491
3 files changed
+16 -10

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

+10 -10
View File
@@ -467,20 +467,20 @@ export async function registerRoutes(app: Express): Promise<Server> {
const user = req.user as User;
const userId = user.id;
// Check if Cloudinary is configured
const cloudinaryConfig = await storage.getCloudinaryConfig(userId);
// Check if Cloudinary is configured (use any admin config for all users)
const cloudinaryConfig = await storage.getAnyCloudinaryConfig();
if (!cloudinaryConfig) {
return res.status(400).json({
error: "Cloudinary not configured. Please configure Cloudinary in Settings first."
error: "Cloudinary not configured. Please ask an administrator to configure Cloudinary in Settings first."
});
}
// Upload to Cloudinary
// Upload to Cloudinary using admin config
const uploadResult = await cloudinaryService.uploadMedia(
req.file.buffer,
req.file.originalname,
userId,
cloudinaryConfig.userId,
req.file.mimetype
);
@@ -667,19 +667,19 @@ export async function registerRoutes(app: Express): Promise<Server> {
console.log("✅ Overlays applied, uploading to Cloudinary...");
// Check if Cloudinary is configured
const cloudinaryConfig = await storage.getCloudinaryConfig(userId);
// Check if Cloudinary is configured (use any admin config for all users)
const cloudinaryConfig = await storage.getAnyCloudinaryConfig();
if (!cloudinaryConfig) {
return res.status(400).json({
error: "Cloudinary not configured. Please configure Cloudinary in Settings first."
error: "Cloudinary not configured. Please ask an administrator to configure Cloudinary in Settings first."
});
}
// Upload to Cloudinary
// Upload to Cloudinary using admin config
const uploadResult = await cloudinaryService.uploadMedia(
outputBuffer,
`edited_${Date.now()}.jpg`,
userId,
cloudinaryConfig.userId,
'image/jpeg'
);
+6
View File
@@ -79,6 +79,7 @@ export interface IStorage {
// Cloudinary Config
getCloudinaryConfig(userId: string): Promise<CloudinaryConfig | undefined>;
getAnyCloudinaryConfig(): Promise<CloudinaryConfig | undefined>;
createCloudinaryConfig(config: InsertCloudinaryConfig): Promise<CloudinaryConfig>;
updateCloudinaryConfig(userId: string, config: Partial<InsertCloudinaryConfig>): Promise<CloudinaryConfig>;
@@ -311,6 +312,11 @@ export class DatabaseStorage implements IStorage {
return config || undefined;
}
async getAnyCloudinaryConfig(): Promise<CloudinaryConfig | undefined> {
const [config] = await db.select().from(cloudinaryConfig).limit(1);
return config || undefined;
}
async createCloudinaryConfig(config: InsertCloudinaryConfig): Promise<CloudinaryConfig> {
const [newConfig] = await db.insert(cloudinaryConfig).values(config).returning();
return newConfig;