38 lines
1.3 KiB
JavaScript
38 lines
1.3 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);
|
|
}
|
|
|
|
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 });
|
|
}
|
|
}
|
|
}
|
|
|
|
export default SocialNetworkController;
|