Ejemplo n.º 1
0
    protected function GET_details($rsc, $j = NULL)
    {
        global $config;
        global $phphw_common_json;
        $assignment = $rsc[1];
        $guard = new \PHPREST\DB\Guard($config['db']);
        $sql = <<<EOSQL
SELECT name, title, deadline, description
FROM {$guard->tables->assignment}
WHERE
name = ?
LOCK IN SHARE MODE;
EOSQL;
        $stmt = $guard->mysqli->prepare($sql);
        $stmt->bind_param('s', $assignment);
        $stmt->execute();
        $result = $stmt->get_result();
        $details = $result->fetch_assoc();
        if (!$details) {
            return $phphw_common_json['nonexist'];
        }
        $result->free();
        $stmt->close();
        $guard->commit();
        return ['result' => 'OK', 'status' => '200', 'reason' => 'Success', 'details' => $details];
    }
Ejemplo n.º 2
0
    public function delete_token($rsc, $j)
    {
        global $config;
        global $phphw_common_json;
        $login = $rsc[1];
        $token = $j->token;
        $guard = new \PHPREST\DB\Guard($config['db']);
        $sql = <<<EOSQL
UPDATE {$guard->tables->token}
SET expired = TRUE
WHERE user IN (
\tSELECT id FROM {$guard->tables->user}
\tWHERE login = ?
) AND token = ?
EOSQL;
        /*SELECT id FROM {$guard->tables->token}
        INNER JOIN {$guard->tables->user}
        ON {$guard->tables->user}.id = user AND login = ? AND token = ?
        FOR UPDATE*/
        $stmt = $guard->mysqli->prepare($sql);
        $stmt->bind_param('ss', $login, $token);
        $stmt->execute();
        if (!$stmt->affected_rows) {
            return $phphw_common_json['unauthorized'];
        }
        $stmt->close();
        $guard->commit();
        return ['result' => 'OK', 'status' => '200', 'reason' => 'Logout Success'];
    }