---
# System prepended metadata

title: Untitled

---

 ```js
 async generateHash({
    bound: {
      date_from, date_to, duration_bucket, max_stops, max_duration,
    },
    travelClass,
    fromAir,
    toAir,
  }) {
    const diff = Math.abs(
      differenceInDays(new Date(date_from), new Date(date_to)),
    );
    // console.log('THIS IS DIFFERENCE', diff);
    const hashes = new Map();
    for (let i = 0; i <= diff; i += 1) {
      const journeyDate = format(
        addDays(new Date(date_from), i),
        'yyyy-MM-dd',
      );
      for (let j = 0; j < 4; j += 1) {
        if (duration_bucket[j]) {
          hashes.set(
            `${fromAir}~${toAir}~${journeyDate}~${j + 1
            }~${max_stops}~${max_duration}~${travelClass}`,
            {
              date: journeyDate,
              time_bucket: j + 1,
            },
          );
        }
      }
    }
    console.log('THIS IS HASHES', hashes);
    const SELECT_HASH_QUERY = `SELECT alert_id,time_bucket,date,travel_class FROM buyhatke_flights.test_alerts_list2 WHERE from_air =${fromAir} AND to_air=${toAir} 
        AND time_bucket in (${Array.from(hashes.keys()).map(
      (id) => hashes.get(id).time_bucket,
    )}) AND date in (${Array.from(hashes.keys()).map(
      (id) => `'${hashes.get(id).date}'`,
    )}) AND max_stops = ${max_stops} AND max_duration=${max_duration} AND travel_class = ${travelClass} AND active = 1;`;

    // console.log(SELECT_HASH_QUERY);
    const hashResult = await commonQuery(SELECT_HASH_QUERY);
    // const hashResult = [] ;
    // console.log("previos hashes",hashResult,"previous hashes") ;
    // console.log('THIS IS HASH RESULTS', hashResult);
    const alertIds = [];
    for (let i = 0; i < hashResult.length; i += 1) {
      const {
        time_bucket, date, alert_id, travel_class,
      } = hashResult[i];
      const hashId = `${fromAir}~${toAir}~${format(
        new Date(date),
        'yyyy-MM-dd',
      )}~${time_bucket}~${max_stops}~${max_duration}~${travel_class}`;
      // console.log('check this hash', hash_id);
      const entry = hashes.get(hashId);
      if (entry) {
        hashes.set(hashId, { ...entry, flag: 1 });
        alertIds.push(alert_id);
      }
    }
    // console.log("after puuting flags",hashes);
    for (const id of hashes.keys()) {
      const { date, time_bucket, flag } = hashes.get(id);
      // console.log(date, time_bucket, flag, 'haha flag');
      if (!flag) {
        // console.log("aara kya andar");
        const object_to_push = {
          from_air: fromAir,
          to_air: toAir,
          date,
          max_stops,
          max_duration,
          time_bucket,
          travel_class: travelClass,
        };
        const INSERT_QUERY = 'INSERT INTO buyhatke_flights.test_alerts_list2 SET ?';
        const { insertId } = await commonQuery(
          INSERT_QUERY,
          object_to_push,
        );
        alertIds.push(insertId);
        // console.log(object_to_push) ;
      }
    }
    return { data: alertIds, error: null };
  }
 ```