<?php namespace SHServ\Factory; use \SHServ\Entities\User; use \SHServ\Entities\Profile; use \SHServ\Entities\Session; use \SHServ\Entities\Meta; class Getter { public function get_user_by(String $field_name, $field_value): ?User { $result = app() -> thin_builder -> select( User::$table_name, User::get_fields(), [ [$field_name, "=", $field_value] ] ); if(!$result) { return null; } return new User($result[0]["id"], $result[0]); } public function get_profile_by(String $field_name, $field_value) { $result = app() -> thin_builder -> select( Profile::$table_name, ["id"], [ [$field_name, "=", $field_value] ], [], "", [0, 1] ); if(!$result) { return null; } return new Profile($result[0]["id"]); } public function get_session_by(String $field_name, $field_value): ?Session { $result = app() -> thin_builder -> select( Session::$table_name, Session::get_fields(), [[$field_name, "=", $field_value]], ["last_using_at"], "DESC", [0, 1] ); if(!$result) { return null; } return new Session(intval($result[0]["id"]), $result[0]); } public function get_meta(Int $ent_id, String $assignment, Int $amount = 10): Array { $result = app() -> thin_builder -> select( Meta::$table_name, Meta::get_fields(), [ ["ent_id", "=", $ent_id], "AND", ["assignment", "=", $assignment] ], [], "", [0, $amount] ); if(!$result) { return []; } $meta = []; foreach($result as $item) { $meta[] = new Meta($item["id"], $item); } return $meta; } }