86 lines
3.0 KiB
JavaScript
86 lines
3.0 KiB
JavaScript
import SocialNetworkService from '../services/socialnetworkService.js';
|
|
|
|
class SocialNetworkController {
|
|
constructor() {
|
|
this.socialNetworkService = new SocialNetworkService();
|
|
this.userSearch = this.userSearch.bind(this);
|
|
this.profile = this.profile.bind(this);
|
|
this.createFolder = this.createFolder.bind(this);
|
|
this.getFolders = this.getFolders.bind(this);
|
|
this.uploadImage = this.uploadImage.bind(this);
|
|
this.getImage = this.getImage.bind(this);
|
|
}
|
|
|
|
async userSearch(req, res) {
|
|
try {
|
|
const { username, ageFrom, ageTo, genders } = req.body;
|
|
const users = await this.socialNetworkService.searchUsers({ username, ageFrom, ageTo, genders });
|
|
res.status(200).json(users);
|
|
} catch (error) {
|
|
console.error('Error in userSearch:', error);
|
|
res.status(500).json({ error: error.message });
|
|
}
|
|
}
|
|
|
|
async profile(req, res) {
|
|
try {
|
|
const { userId } = req.params;
|
|
const requestingUserId = req.headers.userid;
|
|
if (!userId || !requestingUserId) {
|
|
return res.status(400).json({ error: 'Invalid user or requesting user ID.' });
|
|
}
|
|
const profile = await this.socialNetworkService.getProfile(userId, requestingUserId);
|
|
res.status(200).json(profile);
|
|
} catch (error) {
|
|
console.error('Error in profile:', error);
|
|
res.status(500).json({ error: error.message });
|
|
}
|
|
}
|
|
|
|
async createFolder(req, res) {
|
|
try {
|
|
const folderData = req.body;
|
|
const folder = await this.socialNetworkService.createFolder(folderData);
|
|
res.status(201).json(folder);
|
|
} catch (error) {
|
|
console.error('Error in createFolder:', error);
|
|
res.status(500).json({ error: error.message });
|
|
}
|
|
}
|
|
|
|
async getFolders(req, res) {
|
|
try {
|
|
const userId = req.headers.userid;
|
|
const folders = await this.socialNetworkService.getFolders(userId);
|
|
res.status(200).json(folders);
|
|
} catch (error) {
|
|
console.error('Error in getFolders:', error);
|
|
res.status(500).json({ error: error.message });
|
|
}
|
|
}
|
|
|
|
async uploadImage(req, res) {
|
|
try {
|
|
const imageData = req.body;
|
|
const image = await this.socialNetworkService.uploadImage(imageData);
|
|
res.status(201).json(image);
|
|
} catch (error) {
|
|
console.error('Error in uploadImage:', error);
|
|
res.status(500).json({ error: error.message });
|
|
}
|
|
}
|
|
|
|
async getImage(req, res) {
|
|
try {
|
|
const { imageId } = req.params;
|
|
const image = await this.socialNetworkService.getImage(imageId);
|
|
res.status(200).json(image);
|
|
} catch (error) {
|
|
console.error('Error in getImage:', error);
|
|
res.status(500).json({ error: error.message });
|
|
}
|
|
}
|
|
}
|
|
|
|
export default SocialNetworkController;
|