server/src/app/Http/Controllers/Proxy/BnfController.php
author ymh <ymh.work@gmail.com>
Fri, 04 Mar 2016 19:18:28 +0100
changeset 139 8d688175513a
permissions -rw-r--r--
add proxy for bnf completion and sparql request + upgrade kernel + route
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
139
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
namespace CorpusParole\Http\Controllers\Proxy;
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
use Guzzle;
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
use Illuminate\Http\Request;
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
use CorpusParole\Http\Requests;
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
use CorpusParole\Http\Controllers\Controller;
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
class BnfController extends Controller
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
{
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
    const HEADERS_FORWARDED = [ "host", "user-agent", "accept", "accept-language", "accept-encoding", "connection" ];
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    private function proxyQuery($req, $url) {
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
        $headers = [];
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
        foreach (BnfController::HEADERS_FORWARDED as $h) {
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
            $headerValue = $req->header($h);
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
            if($headerValue) {
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
                $headers[$h] = $headerValue;
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
            }
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
        }
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
        $complResp = Guzzle::get($url, ['query' => $req->all(), 'headers' => $headers]);
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        $resp = response((string)$complResp->getBody(), $complResp->getStatusCode());
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
        foreach ($complResp->getHeaders() as $name => $values) {
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
            if($name != 'Transfer-Encoding') {
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
                $resp->header($name, $values);
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
            }
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
        }
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
        return $resp;
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
    }
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
    // proxy Auto completion query for bnf
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
    public function proxyAutoCompletion(Request $req) {
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
        return $this->proxyQuery($req, config('corpusparole.bnf_completion_url'));
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
    }
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
    // proxy sparql query for bnf
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
    public function proxySparql(Request $req) {
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
        return $this->proxyQuery($req, config('corpusparole.bnf_query_url'));
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
    }
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
8d688175513a add proxy for bnf completion and sparql request + upgrade kernel + route
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
}