Merged API and Databank into Main branch
This commit is contained in:
122
database/helpers/maphelper.ts
Normal file
122
database/helpers/maphelper.ts
Normal file
@@ -0,0 +1,122 @@
|
||||
/// <reference lib="deno.ns" />
|
||||
/**
|
||||
* @author Esad Mustafoski
|
||||
* @description This file makes accessing the Database easier by creating a map for each type of data
|
||||
* @file maphelper.ts
|
||||
*/
|
||||
|
||||
// +++ IMPORTS ------------------------------------------------------ //
|
||||
import { Row } from "https://deno.land/x/sqlite@v3.9.1/mod.ts";
|
||||
import {
|
||||
Accounts,
|
||||
Chat,
|
||||
Comments,
|
||||
Message,
|
||||
Post,
|
||||
} from "../helpers/interfaces.ts";
|
||||
|
||||
function mapPostRow(row: Row): Post {
|
||||
const [
|
||||
posts_uuid,
|
||||
user_id,
|
||||
created_at,
|
||||
post_text,
|
||||
post_type,
|
||||
likes,
|
||||
comments,
|
||||
] = row;
|
||||
return {
|
||||
posts_uuid: Number(posts_uuid),
|
||||
user_id: Number(user_id),
|
||||
created_at: String(created_at),
|
||||
post_text: String(post_text),
|
||||
post_type: String(post_type),
|
||||
likes: Number(likes),
|
||||
comments: Number(comments),
|
||||
};
|
||||
}
|
||||
|
||||
function mapCommentRow(row: Row): Comments {
|
||||
const [
|
||||
comment_id,
|
||||
post_id,
|
||||
author_user_id,
|
||||
date_created_at,
|
||||
text,
|
||||
likes,
|
||||
] = row;
|
||||
return {
|
||||
comment_id: Number(comment_id),
|
||||
post_id: Number(post_id),
|
||||
author_user_id: Number(author_user_id),
|
||||
date_created_at: String(date_created_at),
|
||||
text: String(text),
|
||||
likes: Number(likes),
|
||||
};
|
||||
}
|
||||
|
||||
function mapChatRow(row: Row): Chat {
|
||||
const [chat_id, chat_name, participants, created_at] = row;
|
||||
return {
|
||||
chat_id: Number(chat_id),
|
||||
chat_name: String(chat_name),
|
||||
participants: String(participants),
|
||||
created_at: String(created_at),
|
||||
};
|
||||
}
|
||||
|
||||
function mapMessageRow(row: Row): Message {
|
||||
const [message_id, chat_id, sender_id, content, timestamp] = row;
|
||||
return {
|
||||
message_id: Number(message_id),
|
||||
chat_id: Number(chat_id),
|
||||
sender_id: Number(sender_id),
|
||||
content: String(content),
|
||||
timestamp: String(timestamp),
|
||||
};
|
||||
}
|
||||
|
||||
function mapAccountRow(row: Row): Accounts {
|
||||
const [
|
||||
user_id,
|
||||
user_group,
|
||||
bio,
|
||||
displayname,
|
||||
username,
|
||||
user_email,
|
||||
password,
|
||||
password_salt,
|
||||
firstname,
|
||||
surname,
|
||||
account_created,
|
||||
blocked_users,
|
||||
followers,
|
||||
following,
|
||||
contacts,
|
||||
] = row;
|
||||
return {
|
||||
user_id: Number(user_id),
|
||||
user_group: String(user_group),
|
||||
bio: String(bio),
|
||||
displayname: String(displayname),
|
||||
username: String(username),
|
||||
user_email: String(user_email),
|
||||
password: String(password),
|
||||
password_salt: String(password_salt),
|
||||
firstname: String(firstname),
|
||||
surname: String(surname),
|
||||
account_created: String(account_created),
|
||||
blocked_users: String(blocked_users),
|
||||
followers: String(followers),
|
||||
following: String(following),
|
||||
contacts: String(contacts),
|
||||
};
|
||||
}
|
||||
|
||||
export {
|
||||
mapAccountRow,
|
||||
mapChatRow,
|
||||
mapCommentRow,
|
||||
mapMessageRow,
|
||||
mapPostRow
|
||||
};
|
||||
Reference in New Issue
Block a user