summaryrefslogtreecommitdiff
path: root/web/core/main.php
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--web/core/main.php123
1 files changed, 123 insertions, 0 deletions
diff --git a/web/core/main.php b/web/core/main.php
new file mode 100644
index 0000000..c3c65dd
--- /dev/null
+++ b/web/core/main.php
@@ -0,0 +1,123 @@
+<?php /* Copyright (c) 2024 Freya Murphy */
+class MainModel {
+
+ // loaded route infomation
+ public $info;
+ public $db;
+ public $user_id;
+
+ private $users;
+
+ function __construct() {
+ $this->info = NULL;
+ $this->db = new DatabaseHelper();
+ $this->users = array();
+ $_SESSION['jwt'] = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoicmVzdF91c2VyIiwidXNlcl9pZCI6MSwiZXhwIjoxNzExODUxMDUzfQ.FUcFO44SWV--YtVOy7NftTF8OeeOYGZDaDHigygQxsY';
+ if (array_key_exists('jwt', $_SESSION)) {
+ $this->get_session($_SESSION['jwt']);
+ } else {
+ $this->user_id = NULL;
+ };
+ }
+
+ private function get_session($jwt) {
+ $query = $this->db
+ ->select("_api.verify_jwt('" . $jwt . "') AS user_id;");
+ $result = $query->row();
+ $user_id = $result['user_id'];
+ if ($user_id) {
+ $this->user_id = $user_id;
+ }
+ }
+
+ public function link_css($path) {
+ return '<link rel="stylesheet" href="/public/' . $path . '">';
+ }
+
+ public function link_js($path) {
+ return '<script src="/public/'. $path . '"></script>';
+ }
+
+ public function user() {
+ if ($this->user_id) {
+ return $this->db
+ ->select('*')
+ ->from('api.user')
+ ->where('id')
+ ->eq($this->user_id)
+ ->row();
+ } else {
+ return NULL;
+ }
+ }
+
+ public function get_num($key, $default = NULL) {
+ if (!array_key_exists($key, $_GET)) {
+ if ($default !== NULL) {
+ return $default;
+ } else {
+ error_page(400, lang('error_400'));
+ }
+ } else {
+ $val = $_GET[$key];
+ $val = intval($val);
+ if ($val < 0) {
+ return 0;
+ } else {
+ return $val;
+ }
+ }
+ }
+
+ public function get_users($objs) {
+ $ids = array();
+ foreach ($objs as $obj) {
+ $id = $obj['user_id'];
+ if (!array_key_exists($id, $this->users)) {
+ array_push($ids, intval($id));
+ }
+ }
+ if (!empty($ids)) {
+ $result = $this->db
+ ->select('*')
+ ->from('api.user')
+ ->where_in('id', $ids)
+ ->rows();
+ foreach ($result as $user) {
+ $id = $user['id'];
+ $this->users[$id] = $user;
+ }
+ }
+ return $this->users;
+ }
+
+ public function display_name($user) {
+ $name = '';
+ if ($user['first_name']) {
+ $name .= $user['first_name'];
+ }
+ if ($user['middle_name']) {
+ if ($name != '') {
+ $name .= ' ';
+ }
+ $name .= $user['middle_name'];
+ }
+ if ($user['last_name']) {
+ if ($name != '') {
+ $name .= ' ';
+ }
+ $name .= $user['last_name'];
+ }
+ if ($name == '') {
+ $name = '@' . $user['username'];
+ }
+ return $name;
+ }
+
+ public function display_date($date) {
+ return $date;
+ }
+
+}
+
+?>