Просмотр файла libarea-0.9/app/Models/IgnoredModel.php

Размер файла: 1.72Kb
<?php

declare(strict_types=1);

namespace App\Models;

use Hleb\Base\Model;
use Hleb\Static\DB;

class IgnoredModel extends Model
{
    public static function setIgnored(int $ignored_id)
    {
        if ($ignored_id == 0) {
            return false;
        }

        // We can't ignored ourselves
        if ($ignored_id == self::container()->user()->id()) {
            return false;
        }

        $result = self::getUserIgnored($ignored_id);

        if (is_array($result)) {

            $sql = "DELETE FROM users_ignored WHERE ignored_id = :ignored_id AND user_id = :user_id";

            DB::run($sql, ['ignored_id' => $ignored_id, 'user_id' => self::container()->user()->id()]);

            return 'del';
        }

        $sql = "INSERT INTO users_ignored(ignored_id, user_id) VALUES(:ignored_id, :user_id)";

        DB::run($sql, ['ignored_id' => $ignored_id, 'user_id' => self::container()->user()->id()]);

        return 'add';
    }

    public static function getUserIgnored(int $ignored_id)
    {
        $sql = "SELECT ignored_id, user_id FROM users_ignored WHERE ignored_id = :ignored_id AND user_id = :user_id";

        return  DB::run($sql, ['ignored_id' => $ignored_id, 'user_id' => self::container()->user()->id()])->fetch();
    }

    public static function getIgnoredUsers(int $limit)
    {
        $sql = "SELECT i.ignored_id,
                       u.login,
                       u.avatar
                          FROM users_ignored i 
                              LEFT JOIN users u ON u.id = i.ignored_id
                                  WHERE i.user_id = :user_id ORDER BY i.id DESC LIMIT :limit";

        return  DB::run($sql, ['limit' => $limit, 'user_id' => self::container()->user()->id()])->fetchAll();
    }
}