Ignore:
Timestamp:
02/16/12 14:47:39 (13 years ago)
Author:
hendrikvanantwerpen
Message:
  • [Client] Finished page framework. See rft/ui/content.js or test files for details.
  • [Client] Allow login by pressing Enter.
  • [API] On exception include details in json response.
  • [Server Use Exceptions when save() fails, iso return values.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Dev/branches/rest-dojo-ui/server/api.php

    r260 r263  
    1212use Tonic\Resource as Resource;
    1313
    14 function set_session_cookie($response,$user) {
     14function set_session_cookie($response, $user) {
    1515    $response->addHeader('Set-Cookie', 'rft_uid=' . $user->uid . '; Max-Age: 3600; Path=' . $response->request->baseUri);
    1616}
     
    3131}
    3232
     33function add_default_headers($response) {
     34    $response->addHeader('Content-Type', 'application/json');
     35    $response->addHeader('Cache-Control', 'no-cache, must-revalidate');
     36    $response->addHeader('Expires', 'Sat, 26 Jul 1997 05:00:00 GMT');
     37}
     38
    3339/**
    3440 *  @uri /login
     
    4147        $user = null;
    4248        $data = null;
    43         if ( !empty($request->data) ) {
    44             $data = json_decode($request->data,true);
     49        if (!empty($request->data)) {
     50            $data = json_decode($request->data, true);
    4551        }
    4652        if (!empty($data)) {
     
    4955                throw new ResponseException("Incorrect username and password", Response::UNAUTHORIZED);
    5056            }
     57            set_session_cookie($response, $user);
    5158        } else {
    5259            $user = restore_session($response);
     
    140147        $objects = $info['type']::get(array('uid' => $info['uid']));
    141148        if (empty($objects)) {
    142             throw new ReponseException("Object not found", Response::NOTFOUND);
     149            throw new ResponseException("Object not found", Response::NOTFOUND);
    143150        }
    144151
     
    195202    $request->baseUri = $baseUri;
    196203}
     204
    197205try {
    198206    $resource = $request->loadResource();
     
    200208} catch (ResponseException $e) {
    201209    $response = $e->response($request);
    202 }
    203 $response->addHeader('Content-Type', 'application/json');
    204 $response->addHeader('Cache-Control', 'no-cache, must-revalidate');
    205 $response->addHeader('Expires', 'Sat, 26 Jul 1997 05:00:00 GMT');
     210    $response->body = json_encode(array('errorMsg' => $response->body));
     211} catch (Exception $e) {
     212    $response = new Response($request);
     213    $response->code = Response::INTERNALSERVERERROR;
     214    $response->body = json_encode(array('errorMsg' => "Unhandled exception: " . $e));
     215}
     216add_default_headers($response);
    206217$response->output();
    207218?>
Note: See TracChangeset for help on using the changeset viewer.