avz-cmf / zaboy-rest

0 stars 1 forks source link

zaboy\rest\Middleware\ResourceResolver #7

Closed victorynox closed 8 years ago

victorynox commented 8 years ago
public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $next = null)
    {
        if(empty($request->getAttribute("resourceName"))){
            $path = $request->getUri()->getPath();
            preg_match("/^[\/]?([-_A-Za-z0-9]+)([\/]([-_A-Za-z0-9]+))?/",$path,$matches);
            $resourceName = isset($matches[1])?$matches[1]:null;
            $id = isset($matches[3])?$matches[3]:null;
        }else{
            $resourceName = $request->getAttribute("resourceName");
            $id = empty($request->getAttribute("id"))?null:$request->getAttribute("id");
        }

        $request = $request->withAttribute('Resource-Name', $resourceName);
        $request = $request->withAttribute('Primary-Key-Value', $id);

        if ($next) {
            return $next($request, $response);
        }
        return $response;
    }
avz-cmf commented 8 years ago

done