Advertisement
Guest User

Untitled

a guest
Jan 24th, 2020
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. async getResults({request, response, pagination}) {
  2.       const { finality,
  3.         types,
  4.         dormitories,
  5.         minValue,
  6.         maxValue,
  7.         state,
  8.         city,
  9.         districts,
  10.         code
  11.       } = request.only([
  12.         'finality',
  13.         'types',
  14.         'dormitories',
  15.         'minValue',
  16.         'maxValue',
  17.         'state',
  18.         'citiy',
  19.         'districts',
  20.         'code'])
  21.       const query = Property.query()
  22.         .where('id', '>', 0)
  23.         .with('addresses')
  24.         .with('values')
  25.         .with('propertyTypes')
  26.       if(finality) {
  27.         query.whereHas('values', (builder) => {
  28.             builder.where('value_type_id', finality)
  29.         })
  30.       }
  31.       if(types) {
  32.         if (types.length == 1 ) {
  33.           types.map(type => {
  34.             query.where('type_id', type)
  35.           })  
  36.         } else {
  37.           query.where('type_id', types[0])
  38.           types.map(type => {
  39.             query.orWhere('type_id', type)
  40.           })
  41.         }
  42.       }
  43.       if(dormitories) {
  44.           query.whereHas('features', (builder) => {
  45.             builder.where('property_avaliable_feature_id', 3)
  46.             builder.whereIn('value', dormitories)
  47.           })
  48.       }
  49.       if(minValue) {  
  50.         query.whereHas('values', (builder) => {
  51.           builder.where('value_type_id', finality)
  52.           builder.where('value', '>', minValue)
  53.         })
  54.       }
  55.       if(maxValue) {  
  56.         query.whereHas('values', (builder) => {
  57.           builder.where('value_type_id', finality)
  58.           builder.where('value', '<', maxValue)
  59.         })
  60.       }
  61.       if(state) {  
  62.         query.whereHas('addresses', (builder) => {
  63.             builder.where('state', state)
  64.         })
  65.       }
  66.       if(city) {  
  67.         query.whereHas('addresses', (builder) => {
  68.             builder.where('city', city)
  69.         })
  70.       }
  71.       if(districts) {  
  72.         query.whereHas('addresses', (builder) => {
  73.             builder.whereIn('district', districts)
  74.         })
  75.       }
  76.       if(code) {  
  77.         query.where('id', code)
  78.       }
  79.       try {
  80.         const properties = await query.paginate(pagination.page, pagination.limit)
  81.        
  82.         return response.status(200).send({ data: properties })
  83.       } catch (error) {
  84.         return response.status(400).send({
  85.           message: 'Erro ao realizar o cadastro' + error
  86.         })
  87.       }
  88.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement