FBLA 25
-
-
+
+
%sveltekit.head%
diff --git a/src/lib/db/index.server.ts b/src/lib/db/index.server.ts
index a49de49..4f719cc 100644
--- a/src/lib/db/index.server.ts
+++ b/src/lib/db/index.server.ts
@@ -18,9 +18,10 @@ export async function createUser(user: User): Promise {
const password_hash: string = await bcrypt.hash(user.password!, 12);
const response = await sql`
- INSERT INTO users (username, password_hash, perms, created_at, last_signin, active, email, phone, full_name, company_code)
- VALUES (${user.username}, ${password_hash}, ${user.perms}, NOW(), NOW(), ${user.active}, ${user.email}, ${user.phone}, ${user.fullName}, ${user.companyCode})
- RETURNING id;
+ INSERT INTO users (username, password_hash, perms, created_at, last_signin, active, email, phone, full_name,
+ company_code)
+ VALUES (${user.username}, ${password_hash}, ${user.perms}, NOW(), NOW(), ${user.active}, ${user.email},
+ ${user.phone}, ${user.fullName}, ${user.companyCode}) RETURNING id;
`;
// TODO: handle custom image uploads
@@ -40,17 +41,30 @@ export async function updateUser(user: User): Promise {
// Construct the SQL query
const response = await sql`UPDATE users
- SET
- username = ${user.username},
- ${user.perms !== undefined ? sql`perms = ${user.perms},` : sql``}
- ${user.active !== undefined ? sql`active = ${user.active},` : sql``}
- ${password_hash !== null ? sql`password_hash = ${password_hash},` : sql``}
- email = ${user.email},
- phone = ${user.phone},
- full_name = ${user.fullName},
- company_code = ${user.companyCode}
- WHERE id = ${user.id}
- RETURNING id;`;
+ SET username = ${user.username},
+ ${
+ user.perms !== undefined
+ ? sql`perms
+ =
+ ${user.perms},`
+ : sql``
+ }
+ ${
+ user.active !== undefined
+ ? sql`active
+ =
+ ${user.active},`
+ : sql``
+ } ${
+ password_hash !== null
+ ? sql`password_hash
+ =
+ ${password_hash},`
+ : sql``
+ }
+ email = ${user.email}, phone = ${user.phone}, full_name = ${user.fullName}, company_code = ${user.companyCode}
+ WHERE id = ${user.id}
+ RETURNING id;`;
await saveAvatar(user);
@@ -59,9 +73,9 @@ export async function updateUser(user: User): Promise {
export async function checkUserCreds(username: string, password: string): Promise {
const [user] = await sql`
- SELECT id, username, password_hash, perms, active, company_id AS "companyId"
- FROM users
- WHERE username = ${username}
+ SELECT id, username, password_hash, perms, active, company_id AS "companyId"
+ FROM users
+ WHERE username = ${username}
`;
if (!user) {
@@ -85,7 +99,7 @@ export async function getUsers(searchQuery: string | null = null): Promise {
const [user] = await sql`
- SELECT id, username, perms,
- created_at AT TIME ZONE 'UTC' AS "createdAt",
+ SELECT id,
+ username,
+ perms,
+ created_at AT TIME ZONE 'UTC' AS "createdAt",
last_signin AT TIME ZONE 'UTC' AS "lastSignIn",
- active, email, phone, full_name AS "fullName", company_id, company_code
- FROM users
+ active,
+ email,
+ phone,
+ full_name AS "fullName",
+ company_id,
+ company_code
+ FROM users
WHERE id = ${id};
`;
if (!user) {
@@ -134,27 +155,24 @@ export async function getUser(id: number): Promise {
export async function getUserWithCompany(id: number): Promise {
const [user] = await sql`
- SELECT
- u.id,
- u.username,
- u.perms,
- u.email,
- u.phone,
- u.full_name AS "fullName",
- u.created_at AT TIME ZONE 'UTC' AS "createdAt",
- u.last_signin AT TIME ZONE 'UTC' AS "lastSignIn",
- u.active,
- c.id AS company_id,
- c.name AS company_name,
- c.description AS company_description,
- c.website AS company_website,
- c.created_at AS company_created_at
- FROM
- users u
- LEFT JOIN
- companies c ON u.company_id = c.id
- WHERE
- u.id = ${id};
+ SELECT u.id,
+ u.username,
+ u.perms,
+ u.email,
+ u.phone,
+ u.full_name AS "fullName",
+ u.created_at AT TIME ZONE 'UTC' AS "createdAt",
+ u.last_signin AT TIME ZONE 'UTC' AS "lastSignIn",
+ u.active,
+ c.id AS company_id,
+ c.name AS company_name,
+ c.description AS company_description,
+ c.website AS company_website,
+ c.created_at AS company_created_at
+ FROM users u
+ LEFT JOIN
+ companies c ON u.company_id = c.id
+ WHERE u.id = ${id};
`;
if (!user) {
error(404, 'User not found');
@@ -181,48 +199,34 @@ export async function getUserWithCompanyAndApplications(
id: number
): Promise<{ user: User; applications: Application[] }> {
const data = await sql`
- WITH company_data AS (
- SELECT
- id,
- name,
- description,
- website,
- created_at AT TIME ZONE 'UTC' AS "createdAt"
- FROM companies
- WHERE id = (SELECT company_id FROM users WHERE id = ${id})
- ),
- user_data AS (
- SELECT
- id,
- username,
- perms,
- email,
- phone,
- full_name AS "fullName",
- created_at AT TIME ZONE 'UTC' AS "createdAt",
- last_signin AT TIME ZONE 'UTC' AS "lastSignIn",
- active
- FROM users
- WHERE "id" = ${id}
- ),
- application_data AS (
- SELECT
- id,
- posting_id AS "postingId",
- (SELECT title FROM postings WHERE id = posting_id) AS "postingTitle",
- created_at AT TIME ZONE 'UTC' AS "createdAt"
- FROM applications
- WHERE "user_id" = ${id}
- )
- SELECT
- (
- SELECT row_to_json(company_data)
- FROM company_data
- ) AS company,
- (
- SELECT row_to_json(user_data)
- FROM user_data
- ) AS user,
+ WITH company_data AS (SELECT id,
+ name,
+ description,
+ website,
+ created_at AT TIME ZONE 'UTC' AS "createdAt"
+ FROM companies
+ WHERE id = (SELECT company_id FROM users WHERE id = ${id})),
+ user_data AS (SELECT id,
+ username,
+ perms,
+ email,
+ phone,
+ full_name AS "fullName",
+ created_at AT TIME ZONE 'UTC' AS "createdAt",
+ last_signin AT TIME ZONE 'UTC' AS "lastSignIn",
+ active
+ FROM users
+ WHERE "id" = ${id}),
+ application_data AS (SELECT id,
+ posting_id AS "postingId",
+ (SELECT title FROM postings WHERE id = posting_id) AS "postingTitle",
+ created_at AT TIME ZONE 'UTC' AS "createdAt"
+ FROM applications
+ WHERE "user_id" = ${id})
+ SELECT (SELECT row_to_json(company_data)
+ FROM company_data) AS company,
+ (SELECT row_to_json(user_data)
+ FROM user_data) AS user,
(
SELECT json_agg(row_to_json(application_data))
FROM application_data
@@ -258,8 +262,9 @@ export async function getUserWithCompanyAndApplications(
// should require MANAGE_USERS permission
export async function deleteUser(id: number): Promise {
await sql`
- DELETE FROM users
- WHERE id = ${id};
+ DELETE
+ FROM users
+ WHERE id = ${id};
`;
}
@@ -274,17 +279,17 @@ export async function getTags(searchQuery: string | null): Promise {
export async function updateLastSignin(username: string): Promise {
await sql`
- UPDATE users
- SET last_signin = NOW()
- WHERE username = ${username};
+ UPDATE users
+ SET last_signin = NOW()
+ WHERE username = ${username};
`;
}
export async function createCompany(company: Company): Promise {
const response = await sql`
- INSERT INTO companies (name, description, website, created_at, company_code)
- VALUES (${company.name}, ${company.description}, ${company.website}, NOW(), generate_company_code(CAST(CURRVAL('companies_id_seq') AS INT)))
- RETURNING id;
+ INSERT INTO companies (name, description, website, created_at, company_code)
+ VALUES (${company.name}, ${company.description}, ${company.website}, NOW(),
+ generate_company_code(CAST(CURRVAL('companies_id_seq') AS INT))) RETURNING id;
`;
await saveLogo(company);
@@ -294,10 +299,11 @@ export async function createCompany(company: Company): Promise {
export async function editCompany(company: Company): Promise {
const response = await sql`
- UPDATE companies
- SET name = ${company.name}, description = ${company.description}, website = ${company.website}
- WHERE id = ${company.id}
- RETURNING id;
+ UPDATE companies
+ SET name = ${company.name},
+ description = ${company.description},
+ website = ${company.website}
+ WHERE id = ${company.id} RETURNING id;
`;
await saveLogo(company);
@@ -307,8 +313,9 @@ export async function editCompany(company: Company): Promise {
export async function deleteCompany(id: number): Promise {
await sql`
- DELETE FROM companies
- WHERE id = ${id};
+ DELETE
+ FROM companies
+ WHERE id = ${id};
`;
await deleteLogo({ id: id });
@@ -316,9 +323,9 @@ export async function deleteCompany(id: number): Promise {
export async function getCompany(id: number): Promise {
const [company] = await sql`
- SELECT id, name, description, website, created_at AS "createdAt", company_code AS "companyCode"
- FROM companies
- WHERE id = ${id};
+ SELECT id, name, description, website, created_at AS "createdAt", company_code AS "companyCode"
+ FROM companies
+ WHERE id = ${id};
`;
if (!company) {
@@ -332,56 +339,40 @@ export async function getCompanyFullData(
id: number
): Promise<{ company: Company; users: User[]; postings: Posting[] }> {
const data = await sql`
- WITH company_data AS (
- SELECT
- id,
- name,
- description,
- website,
- created_at AT TIME ZONE 'UTC' AS "createdAt"
- FROM companies
- WHERE id = ${id}
- ),
- user_data AS (
- SELECT
- id,
- username,
- email,
- phone,
- full_name AS "fullName"
- FROM users
- WHERE "company_id" = ${id}
- ),
- posting_data AS (
- SELECT
- id,
- title,
- description,
- employer_id AS "employerId",
- address,
- employment_type AS "employmentType",
- wage,
- link,
- tag_ids AS "tagIds",
- created_at AT TIME ZONE 'UTC' AS "createdAt",
- updated_at AT TIME ZONE 'UTC' AS "updatedAt",
- flyer_link AS "flyerLink"
- FROM postings
- WHERE "company_id" = ${id}
- )
- SELECT
- (
- SELECT row_to_json(company_data)
- FROM company_data
- ) AS company,
- (
- SELECT json_agg(row_to_json(user_data))
- FROM user_data
- ) AS users,
- (
- SELECT json_agg(row_to_json(posting_data))
- FROM posting_data
- ) AS postings;
+ WITH company_data AS (SELECT id,
+ name,
+ description,
+ website,
+ created_at AT TIME ZONE 'UTC' AS "createdAt"
+ FROM companies
+ WHERE id = ${id}),
+ user_data AS (SELECT id,
+ username,
+ email,
+ phone,
+ full_name AS "fullName"
+ FROM users
+ WHERE "company_id" = ${id}),
+ posting_data AS (SELECT id,
+ title,
+ description,
+ employer_id AS "employerId",
+ address,
+ employment_type AS "employmentType",
+ wage,
+ link,
+ tag_ids AS "tagIds",
+ created_at AT TIME ZONE 'UTC' AS "createdAt",
+ updated_at AT TIME ZONE 'UTC' AS "updatedAt",
+ flyer_link AS "flyerLink"
+ FROM postings
+ WHERE "company_id" = ${id})
+ SELECT (SELECT row_to_json(company_data)
+ FROM company_data) AS company,
+ (SELECT json_agg(row_to_json(user_data))
+ FROM user_data) AS users,
+ (SELECT json_agg(row_to_json(posting_data))
+ FROM posting_data) AS postings;
`;
if (!data) {
@@ -432,9 +423,11 @@ export async function createPosting(posting: Posting): Promise {
}
}
const response = await sql`
- INSERT INTO postings (title, description, employer_id, address, employment_type, wage, link, tag_ids, created_at, updated_at, flyer_link, company_id)
- VALUES (${posting.title}, ${posting.description}, ${posting.employerId}, ${posting.address}, ${posting.employmentType}, ${posting.wage}, ${posting.link}, ${posting.tagIds}, NOW(), NOW(), ${posting.flyerLink}, ${posting.companyId})
- RETURNING id;
+ INSERT INTO postings (title, description, employer_id, address, employment_type, wage, link, tag_ids, created_at,
+ updated_at, flyer_link, company_id)
+ VALUES (${posting.title}, ${posting.description}, ${posting.employerId}, ${posting.address},
+ ${posting.employmentType}, ${posting.wage}, ${posting.link}, ${posting.tagIds}, NOW(), NOW(),
+ ${posting.flyerLink}, ${posting.companyId}) RETURNING id;
`;
return response[0].id;
@@ -456,10 +449,19 @@ export async function editPosting(posting: Posting): Promise {
}
const response = await sql`
- UPDATE postings
- SET title = ${posting.title}, description = ${posting.description}, employer_id = ${posting.employerId}, address = ${posting.address}, employment_type = ${posting.employmentType}, wage = ${posting.wage}, link = ${posting.link}, tag_ids = ${posting.tagIds}, updated_at = NOW(), flyer_link = ${posting.flyerLink}, company_id = ${posting.companyId}
- WHERE id = ${posting.id}
- RETURNING id;
+ UPDATE postings
+ SET title = ${posting.title},
+ description = ${posting.description},
+ employer_id = ${posting.employerId},
+ address = ${posting.address},
+ employment_type = ${posting.employmentType},
+ wage = ${posting.wage},
+ link = ${posting.link},
+ tag_ids = ${posting.tagIds},
+ updated_at = NOW(),
+ flyer_link = ${posting.flyerLink},
+ company_id = ${posting.companyId}
+ WHERE id = ${posting.id} RETURNING id;
`;
return response[0].id;
@@ -467,8 +469,9 @@ export async function editPosting(posting: Posting): Promise {
export async function deletePosting(id: number): Promise {
await sql`
- DELETE FROM postings
- WHERE id = ${id};
+ DELETE
+ FROM postings
+ WHERE id = ${id};
`;
}
@@ -476,36 +479,28 @@ export async function getCompanyEmployers(
id: number
): Promise<{ company: Company; users: User[] }> {
const data = await sql`
- WITH company_data AS (
- SELECT
- id,
- name,
- description,
- website,
- created_at AT TIME ZONE 'UTC' AS "createdAt",
- company_code AS "companyCode"
- FROM companies
- WHERE id = ${id}
- ),
+ WITH company_data AS (SELECT id,
+ name,
+ description,
+ website,
+ created_at AT TIME ZONE 'UTC' AS "createdAt",
+ company_code AS "companyCode"
+ FROM companies
+ WHERE id = ${id}),
user_data AS (SELECT id,
username,
email,
phone,
- full_name AS "fullName",
- created_at AT TIME ZONE 'UTC' AS "createdAt",
+ full_name AS "fullName",
+ created_at AT TIME ZONE 'UTC' AS "createdAt",
last_signin AT TIME ZONE 'UTC' AS "lastSignIn",
- company_id as "companyId"
+ company_id as "companyId"
FROM users
WHERE "company_id" = ${id})
- SELECT
- (
- SELECT row_to_json(company_data)
- FROM company_data
- ) AS company,
- (
- SELECT json_agg(row_to_json(user_data))
- FROM user_data
- ) AS users;
+ SELECT (SELECT row_to_json(company_data)
+ FROM company_data) AS company,
+ (SELECT json_agg(row_to_json(user_data))
+ FROM user_data) AS users;
`;
if (!data) {
@@ -539,50 +534,40 @@ export async function getCompanyEmployersAndRequests(
id: number
): Promise<{ company: Company; employers: User[]; requests: User[] }> {
const data = await sql`
- WITH company_data AS (
- SELECT
- id,
- name,
- description,
- website,
- created_at AT TIME ZONE 'UTC' AS "createdAt",
- company_code AS "companyCode"
- FROM companies
- WHERE id = ${id}
- ),
- employer_data AS (SELECT id,
- username,
- email,
- phone,
- full_name AS "fullName",
- created_at AT TIME ZONE 'UTC' AS "createdAt",
- last_signin AT TIME ZONE 'UTC' AS "lastSignIn",
- company_id as "companyId"
- FROM users
- WHERE "company_id" = ${id}),
- request_data AS (SELECT id,
- username,
- email,
- phone,
- full_name AS "fullName",
- created_at AT TIME ZONE 'UTC' AS "createdAt",
- last_signin AT TIME ZONE 'UTC' AS "lastSignIn",
- company_id as "companyId"
- FROM users
- WHERE "company_code" = (SELECT company_code FROM companies WHERE id = ${id}))
- SELECT
- (
- SELECT row_to_json(company_data)
- FROM company_data
- ) AS company,
- (
- SELECT json_agg(row_to_json(employer_data))
- FROM employer_data
- ) AS employers,
- (
- SELECT json_agg(row_to_json(request_data))
- FROM request_data
- ) AS requests;
+ WITH company_data AS (SELECT id,
+ name,
+ description,
+ website,
+ created_at AT TIME ZONE 'UTC' AS "createdAt",
+ company_code AS "companyCode"
+ FROM companies
+ WHERE id = ${id}),
+ employer_data AS (SELECT id,
+ username,
+ email,
+ phone,
+ full_name AS "fullName",
+ created_at AT TIME ZONE 'UTC' AS "createdAt",
+ last_signin AT TIME ZONE 'UTC' AS "lastSignIn",
+ company_id as "companyId"
+ FROM users
+ WHERE "company_id" = ${id}),
+ request_data AS (SELECT id,
+ username,
+ email,
+ phone,
+ full_name AS "fullName",
+ created_at AT TIME ZONE 'UTC' AS "createdAt",
+ last_signin AT TIME ZONE 'UTC' AS "lastSignIn",
+ company_id as "companyId"
+ FROM users
+ WHERE "company_code" = (SELECT company_code FROM companies WHERE id = ${id}))
+ SELECT (SELECT row_to_json(company_data)
+ FROM company_data) AS company,
+ (SELECT json_agg(row_to_json(employer_data))
+ FROM employer_data) AS employers,
+ (SELECT json_agg(row_to_json(request_data))
+ FROM request_data) AS requests;
`;
if (!data) {
@@ -632,18 +617,18 @@ export async function getCompanyEmployersAndRequests(
export async function removeEmployerFromCompany(companyId: number, userId: number): Promise {
await sql`
- UPDATE users
- SET company_id = NULL,
- company_code = NULL
- WHERE id = ${userId};
+ UPDATE users
+ SET company_id = NULL,
+ company_code = NULL
+ WHERE id = ${userId};
`;
}
export async function addEmployerToCompany(companyId: number, userId: number): Promise {
await sql`
- UPDATE users
- SET company_id = ${companyId}
- WHERE id = ${userId};
+ UPDATE users
+ SET company_id = ${companyId}
+ WHERE id = ${userId};
`;
}
@@ -652,19 +637,19 @@ export async function getPostings(searchQuery: string | null = null): Promise {
@@ -691,16 +676,16 @@ export async function getPosting(id: number): Promise {
SELECT id,
title,
description,
- employer_id AS "employerId",
+ employer_id AS "employerId",
address,
- employment_type AS "employmentType",
+ employment_type AS "employmentType",
wage,
link,
- tag_ids AS "tagIds",
- created_at AT TIME ZONE 'UTC' AS "createdAt",
+ tag_ids AS "tagIds",
+ created_at AT TIME ZONE 'UTC' AS "createdAt",
updated_at AT TIME ZONE 'UTC' AS "updatedAt",
- flyer_link AS "flyerLink",
- company_id AS "companyId"
+ flyer_link AS "flyerLink",
+ company_id AS "companyId"
FROM postings
WHERE id = ${id};
`;
@@ -726,51 +711,37 @@ export async function getPosting(id: number): Promise {
export async function getPostingWithCompanyUser(id: number): Promise {
const data = await sql`
- WITH company_data AS (
- SELECT
- id,
- name,
- description,
- website,
- created_at AS "createdAt"
- FROM companies
- WHERE id = (SELECT company_id FROM postings WHERE id = ${id})
- ),
- user_data AS (
- SELECT
- username,
- email,
- phone,
- full_name AS "fullName"
- FROM users
- WHERE "company_id" = (SELECT company_id FROM postings WHERE id = ${id})
- ),
- posting_data AS (
- SELECT
- id,
- title,
- description,
- employer_id AS "employerId",
- address,
- employment_type AS "employmentType",
- wage,
- link,
- tag_ids AS "tagIds",
- created_at AT TIME ZONE 'UTC' AS "createdAt",
- updated_at AT TIME ZONE 'UTC' AS "updatedAt",
- flyer_link AS "flyerLink"
- FROM postings
- WHERE id = ${id}
- )
- SELECT
- (
- SELECT row_to_json(company_data)
- FROM company_data
- ) AS company,
- (
- SELECT row_to_json(user_data)
- FROM user_data
- ) AS user,
+ WITH company_data AS (SELECT id,
+ name,
+ description,
+ website,
+ created_at AS "createdAt"
+ FROM companies
+ WHERE id = (SELECT company_id FROM postings WHERE id = ${id})),
+ user_data AS (SELECT username,
+ email,
+ phone,
+ full_name AS "fullName"
+ FROM users
+ WHERE "company_id" = (SELECT company_id FROM postings WHERE id = ${id})),
+ posting_data AS (SELECT id,
+ title,
+ description,
+ employer_id AS "employerId",
+ address,
+ employment_type AS "employmentType",
+ wage,
+ link,
+ tag_ids AS "tagIds",
+ created_at AT TIME ZONE 'UTC' AS "createdAt",
+ updated_at AT TIME ZONE 'UTC' AS "updatedAt",
+ flyer_link AS "flyerLink"
+ FROM postings
+ WHERE id = ${id})
+ SELECT (SELECT row_to_json(company_data)
+ FROM company_data) AS company,
+ (SELECT row_to_json(user_data)
+ FROM user_data) AS user,
(
SELECT row_to_json(posting_data)
FROM posting_data
@@ -796,9 +767,8 @@ export async function getPostingWithCompanyUser(id: number): Promise {
export async function createApplication(application: Application): Promise {
const response = await sql`
- INSERT INTO applications (posting_id, user_id, candidate_statement, created_at)
- VALUES (${application.postingId}, ${application.userId}, ${application.candidateStatement}, NOW())
- RETURNING id;
+ INSERT INTO applications (posting_id, user_id, candidate_statement, created_at)
+ VALUES (${application.postingId}, ${application.userId}, ${application.candidateStatement}, NOW()) RETURNING id;
`;
sendEmployerNotificationEmail(application.postingId).catch((err) => {
@@ -808,9 +778,10 @@ export async function createApplication(application: Application): Promise {
- const response = await sql`
- DELETE FROM applications
- WHERE id = ${id};
+ await sql`
+ DELETE
+ FROM applications
+ WHERE id = ${id};
`;
}
@@ -819,23 +790,24 @@ export async function deleteApplicationWithUser(
userId: number
): Promise {
console.log(applicationId, userId);
- const response = await sql`
- DELETE FROM applications
- WHERE id = ${applicationId} AND user_id = ${userId};
+ await sql`
+ DELETE
+ FROM applications
+ WHERE id = ${applicationId}
+ AND user_id = ${userId};
`;
}
export async function getApplications(postingId: number): Promise {
const data = await sql`
- SELECT
- a.id,
- a.candidate_statement AS "candidateStatement",
- a.created_at AS "createdAt",
- u.id AS "userId",
- u.username,
- u.email,
- u.phone,
- u.full_name AS "fullName"
+ SELECT a.id,
+ a.candidate_statement AS "candidateStatement",
+ a.created_at AS "createdAt",
+ u.id AS "userId",
+ u.username,
+ u.email,
+ u.phone,
+ u.full_name AS "fullName"
FROM applications a
JOIN users u ON a.user_id = u.id
WHERE a.posting_id = ${postingId};
@@ -876,19 +848,14 @@ export async function getNotificationInfo(
postingId: number
): Promise<{ title: string; emails: string[] }> {
const data = await sql`
- WITH posting_data AS (
- SELECT title, company_id
- FROM postings
- WHERE id = ${postingId}
- ),
- user_emails AS (
- SELECT email
- FROM users
- WHERE company_id = (SELECT company_id FROM posting_data)
- )
- SELECT
- (SELECT title FROM posting_data) AS title,
- (SELECT json_agg(email) FROM user_emails) AS emails;
+ WITH posting_data AS (SELECT title, company_id
+ FROM postings
+ WHERE id = ${postingId}),
+ user_emails AS (SELECT email
+ FROM users
+ WHERE company_id = (SELECT company_id FROM posting_data))
+ SELECT (SELECT title FROM posting_data) AS title,
+ (SELECT json_agg(email) FROM user_emails) AS emails;
`;
if (!data || !data[0]) {
diff --git a/src/routes/+error.svelte b/src/routes/+error.svelte
index cdd6aeb..59290ed 100644
--- a/src/routes/+error.svelte
+++ b/src/routes/+error.svelte
@@ -2,11 +2,11 @@
import { page } from '$app/stores';
-
+
{$page.status}
-
Thats an error
+
That's an error
{#if $page.status === 404}
We cant seem to find the page you are looking for.
The address may be mistyped, or the page may have moved or been deleted.