export async function retrieveWebsiteList()

in src/api/websites/db.ts [53:78]


export async function retrieveWebsiteList(
  conn: DbConnectionType,
  options: ListRequest,
): Promise<Website[]> {
  let query = SQL`
    SELECT
      distinct url,
      MAX(time_created) as time_last_created,
      array(
        SELECT to_json(n.*)::text
        FROM lighthouse_audits n
        WHERE n.url = o.url
        ORDER BY time_created DESC
      ) as audits_json
    FROM lighthouse_audits o
  `;
  if (options.where) {
    query.append(`\n`);
    query.append(options.where);
  }
  query = query.append(SQL`\nGROUP BY url`);
  query = query.append(SQL`\nORDER BY time_last_created DESC`);
  query = addListRequestToQuery(query, options);
  const queryResult = await conn.query<WebsiteRow>(query);
  return queryResult.rows.map(Website.buildForDbRow);
}