From da55b65a42cc9b8a34089d2b24a823f54faf13ab Mon Sep 17 00:00:00 2001 From: DutchEllie Date: Mon, 22 Aug 2022 16:15:38 +0200 Subject: [PATCH] Add music table, but neglect actually doing something with it --- .../20220820100623_create-users-table.ts | 2 +- .../20220822134642_create-music-table.ts | 18 +++++++++++++ src/lib/db/music.ts | 26 +++++++++++++++++++ src/lib/db/user.ts | 10 +++---- src/lib/entities/music.ts | 9 +++++++ src/lib/entities/user.ts | 2 +- 6 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 src/lib/db/migrations/20220822134642_create-music-table.ts create mode 100644 src/lib/db/music.ts create mode 100644 src/lib/entities/music.ts diff --git a/src/lib/db/migrations/20220820100623_create-users-table.ts b/src/lib/db/migrations/20220820100623_create-users-table.ts index 9f3c512..e405b1a 100644 --- a/src/lib/db/migrations/20220820100623_create-users-table.ts +++ b/src/lib/db/migrations/20220820100623_create-users-table.ts @@ -3,7 +3,7 @@ import type { Knex } from "knex"; export async function up(knex: Knex): Promise { return knex.schema.createTable("users", (table) => { - table.increments("id", { primaryKey: true }); + table.increments("userid", { primaryKey: true }); table.string("username", 255).notNullable; table.string("email", 255).notNullable; table.string("password", 64).notNullable; diff --git a/src/lib/db/migrations/20220822134642_create-music-table.ts b/src/lib/db/migrations/20220822134642_create-music-table.ts new file mode 100644 index 0000000..b3c4274 --- /dev/null +++ b/src/lib/db/migrations/20220822134642_create-music-table.ts @@ -0,0 +1,18 @@ +import type { Knex } from "knex"; + + +export async function up(knex: Knex): Promise { + return knex.schema.createTable("music", (table) => { + table.increments("musicid", { primaryKey: true }); + table.string("ytlink", 255); + table.integer("userid"); + table.foreign("userid").references("userid").inTable("users"); + table.timestamps(true, true); + }); +} + + +export async function down(knex: Knex): Promise { + return knex.schema.dropTable("music"); +} + diff --git a/src/lib/db/music.ts b/src/lib/db/music.ts new file mode 100644 index 0000000..f44cb07 --- /dev/null +++ b/src/lib/db/music.ts @@ -0,0 +1,26 @@ +import db from "./db"; +import type User from "../entities/user"; +import type Music from "../entities/music"; + +export function addSong(link: string, userid: number): Promise { + const song: Music = { + ytlink: link, + userID: userid, + }; + return db() + .insert(song) + .into("music") + .then((v) => { + return v[0]; + }); +} + +export function getSongsByUserID(userid: number): Promise { + return db() + .select("*") + .from("music") + .where("userid", userid) + .then((v) => { + return v; + }); +} diff --git a/src/lib/db/user.ts b/src/lib/db/user.ts index 602184f..e4300ce 100644 --- a/src/lib/db/user.ts +++ b/src/lib/db/user.ts @@ -1,12 +1,12 @@ import db from "./db"; import type User from "../entities/user"; -export function getID(id: number): Promise{ - const user = db().select("*").from("users").where("id", id).first().then((user) => { +export function getID(userid: number): Promise{ + const user = db().select("*").from("users").where("userid", userid).first().then((user) => { return user; }); return user; -} +}; export function createUser(username: string, email: string, website: string, password: string): Promise { return db() @@ -20,6 +20,4 @@ export function createUser(username: string, email: string, website: string, pas .then((n) => { return n[0]; }); -} - -//createUser("quenten", "test@email", "", "password"); \ No newline at end of file +}; diff --git a/src/lib/entities/music.ts b/src/lib/entities/music.ts new file mode 100644 index 0000000..5d11bca --- /dev/null +++ b/src/lib/entities/music.ts @@ -0,0 +1,9 @@ +interface Music { + musicID?: number; + ytlink: string; + userID: number; + created_at?: Date, + updated_at?: Date, +} + +export default Music; \ No newline at end of file diff --git a/src/lib/entities/user.ts b/src/lib/entities/user.ts index 5a59c6c..8815f53 100644 --- a/src/lib/entities/user.ts +++ b/src/lib/entities/user.ts @@ -1,5 +1,5 @@ interface User { - id: number, + userid: number, username: string, email: string, password: string,