37 lines
1.3 KiB
TypeScript
Raw Normal View History

2019-08-16 12:27:30 +03:00
import {query} from "../node_modules/db-connector/assembly/sqlite"
export function createScheme(): void {
2019-08-16 19:47:38 +03:00
let request = `CREATE TABLE messages(message text, username text)`;
2019-08-16 12:27:30 +03:00
query(request);
}
2019-08-16 19:47:38 +03:00
export function addMessage(message: string, username: string): void {
let request = `INSERT INTO messages VALUES("` + message + `", "` + username + `")`;
2019-08-16 12:27:30 +03:00
query(request);
}
2019-08-18 16:05:11 +03:00
export function getMessages(username: string | null, offset: u32, count: u32): string {
let limitClause = ` LIMIT ` + count.toString() + ` OFFSET ` + offset.toString() + ` `;
2019-08-16 12:27:30 +03:00
if (username) {
2019-08-18 16:05:11 +03:00
let whereClause = ` WHERE username = "` + username + `" `;
2019-08-16 12:27:30 +03:00
let request =
`SELECT json_group_array(
2019-08-16 19:47:38 +03:00
json_object('message', message, 'username', username)
2019-08-16 12:27:30 +03:00
) AS json_result FROM
2019-08-18 16:05:11 +03:00
(SELECT * FROM messages` + whereClause + limitClause + `)`;
2019-08-16 12:27:30 +03:00
return query(request);
} else {
let request =
`SELECT json_group_array(
2019-08-16 19:47:38 +03:00
json_object('message', message, 'username', username)
2019-08-18 16:05:11 +03:00
) AS json_result FROM (SELECT * FROM messages` + limitClause + `)`;
2019-08-16 12:27:30 +03:00
return query(request);
}
}
export function getPostsCount(): u32 {
let request = `SELECT COUNT(*) from messages`;
let result = query(request);
return U32.parseInt(result);
}