Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- async getResults({request, response, pagination}) {
- const { finality,
- types,
- dormitories,
- minValue,
- maxValue,
- state,
- city,
- districts,
- code
- } = request.only([
- 'finality',
- 'types',
- 'dormitories',
- 'minValue',
- 'maxValue',
- 'state',
- 'citiy',
- 'districts',
- 'code'])
- const query = Property.query()
- .where('id', '>', 0)
- .with('addresses')
- .with('values')
- .with('propertyTypes')
- if(finality) {
- query.whereHas('values', (builder) => {
- builder.where('value_type_id', finality)
- })
- }
- if(types) {
- if (types.length == 1 ) {
- types.map(type => {
- query.where('type_id', type)
- })
- } else {
- query.where('type_id', types[0])
- types.map(type => {
- query.orWhere('type_id', type)
- })
- }
- }
- if(dormitories) {
- query.whereHas('features', (builder) => {
- builder.where('property_avaliable_feature_id', 3)
- builder.whereIn('value', dormitories)
- })
- }
- if(minValue) {
- query.whereHas('values', (builder) => {
- builder.where('value_type_id', finality)
- builder.where('value', '>', minValue)
- })
- }
- if(maxValue) {
- query.whereHas('values', (builder) => {
- builder.where('value_type_id', finality)
- builder.where('value', '<', maxValue)
- })
- }
- if(state) {
- query.whereHas('addresses', (builder) => {
- builder.where('state', state)
- })
- }
- if(city) {
- query.whereHas('addresses', (builder) => {
- builder.where('city', city)
- })
- }
- if(districts) {
- query.whereHas('addresses', (builder) => {
- builder.whereIn('district', districts)
- })
- }
- if(code) {
- query.where('id', code)
- }
- try {
- const properties = await query.paginate(pagination.page, pagination.limit)
- return response.status(200).send({ data: properties })
- } catch (error) {
- return response.status(400).send({
- message: 'Erro ao realizar o cadastro' + error
- })
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement