<?php

namespace App;

use Cylab\Mark\Client;

/**
 * Description of Mark
 *
 * @author tibo
 */
class Mark
{
    private static $instance;

    public static function get() : Client
    {
        if (self::$instance !== null) {
            return self::$instance;
        }

        $mark_url = 'http://' . config("app.mark_host") . ':' . config('app.mark_port');
        self::$instance = new Client($mark_url);

        // test we can connect to the server
        try {
            self::$instance->test();
        } catch (\JsonRPC\Exception\ConnectionFailureException $ex) {
            session()->flash('error', 'Failed to connect to MARK server at ' . $mark_url);
            abort(redirect('app/error'));
        }

        return self::$instance;
    }
}