39 lines
983 B
JavaScript
39 lines
983 B
JavaScript
import { fetchActors } from '../actors.js';
|
|
|
|
export function curateActorsQuery(query) {
|
|
return {
|
|
query: query.q,
|
|
gender: query.gender,
|
|
age: query.age?.split(',').map((age) => Number(age)),
|
|
dateOfBirth: query.dob && new Date(query.dob),
|
|
dobType: ({ dob: 'dateOfBirth', bd: 'birthday' })[query.dobt] || 'birthday',
|
|
cup: query.cup?.split(','),
|
|
country: query.c,
|
|
naturalBoobs: query.nb,
|
|
height: query.height?.split(',').map((height) => Number(height)),
|
|
weight: query.weight?.split(',').map((weight) => Number(weight)),
|
|
requireAvatar: query.avatar,
|
|
stashId: Number(query.stashId) || null,
|
|
};
|
|
}
|
|
|
|
export async function fetchActorsApi(req, res) {
|
|
const {
|
|
actors,
|
|
countries,
|
|
limit,
|
|
total,
|
|
} = await fetchActors(curateActorsQuery(req.query), {
|
|
page: Number(req.query.page) || 1,
|
|
limit: Number(req.query.limit) || 120,
|
|
order: req.query.order?.split('.') || ['likes', 'desc'],
|
|
}, req.user);
|
|
|
|
res.send({
|
|
actors,
|
|
countries,
|
|
limit,
|
|
total,
|
|
});
|
|
}
|