Refactor API.

This commit is contained in:
Lars Jung 2015-05-05 00:01:25 +02:00
parent 0f1ca4e85b
commit e31028f5a9
7 changed files with 32 additions and 23 deletions

View file

@ -84,7 +84,7 @@ modulejs.define('core/location', ['_', 'modernizr', 'core/event', 'core/settings
function load(callback) {
modulejs.require('core/server').request({action: 'get', items: true, itemsHref: absHref, itemsWhat: 1}, function (json) {
modulejs.require('core/server').request({action: 'get', items: {href: absHref, what: 1}}, function (json) {
var Item = modulejs.require('model/item');
var item = Item.get(absHref);

View file

@ -10,7 +10,7 @@ modulejs.define('ext/custom', ['_', '$', 'marked', 'core/event', 'core/server',
function onLocationChanged(item) {
server.request({action: 'get', custom: true, customHref: item.absHref}, function (response) {
server.request({action: 'get', custom: item.absHref}, function (response) {
var hasHeader;
var hasFooter;

View file

@ -67,7 +67,7 @@ modulejs.define('ext/l10n', ['_', '$', 'core/event', 'core/format', 'core/langs'
callback(loaded[isoCode]);
} else {
server.request({action: 'get', l10n: true, l10nCodes: isoCode}, function (response) {
server.request({action: 'get', l10n: [isoCode]}, function (response) {
var json = response.l10n && response.l10n[isoCode] ? response.l10n[isoCode] : {};
loaded[isoCode] = _.extend({}, defaultTranslations, json, {isoCode: isoCode});

View file

@ -107,7 +107,7 @@ modulejs.define('model/item', ['_', 'core/event', 'core/location', 'core/server'
if (self.isContentFetched) {
callback(self);
} else {
server.request({action: 'get', items: true, itemsHref: self.absHref, itemsWhat: 1}, function (response) {
server.request({action: 'get', items: {href: self.absHref, what: 1}}, function (response) {
if (response.items) {
_.each(response.items, function (jsonItem) {

View file

@ -49,23 +49,24 @@ class Api {
}
}
if (Util::get_boolean_request_param("l10n", false)) {
if (Util::get_request_param("l10n", false)) {
$iso_codes = Util::get_request_param("l10nCodes");
$iso_codes = array_filter(explode(":", $iso_codes));
$iso_codes = Util::get_request_param("l10n");
$iso_codes = array_filter($iso_codes);
$response["l10n"] = $this->app->get_l10n($iso_codes);
}
if (Util::get_boolean_request_param("custom", false)) {
if (Util::get_request_param("custom", false)) {
$href = Util::get_request_param("customHref");
$href = Util::get_request_param("custom");
$response["custom"] = $this->app->get_customizations($href);
}
if (Util::get_boolean_request_param("items", false)) {
if (Util::get_request_param("items", false)) {
$href = Util::get_request_param("itemsHref");
$what = Util::get_request_param("itemsWhat");
$items = Util::get_request_param("items");
$href = $items["href"];
$what = $items["what"];
$what = is_numeric($what) ? intval($what, 10) : 1;
$response["items"] = $this->app->get_items($href, $what);
}

View file

@ -22,18 +22,9 @@ class App {
}
public function get_option($keypath, $default) {
public function get_option($keypath = "", $default = null) {
$value = $this->options;
$keys = array_filter(explode(".", $keypath));
foreach ($keys as $key) {
if (array_key_exists($key, $value)) {
$value = $value[$key];
} else {
return $default;
}
}
return $value;
return Util::array_query($this->options, $keypath, $default);
}

View file

@ -32,8 +32,25 @@ class Util {
}
public static function array_query($array, $keypath = "", $default = null) {
$value = $array;
$keys = array_filter(explode(".", $keypath));
foreach ($keys as $key) {
if (!is_array($value) || !array_key_exists($key, $value)) {
return $default;
}
$value = $value[$key];
}
return $value;
}
public static function is_post_request() {
// Logger::log("POSTED", $_POST);
return (strtolower($_SERVER["REQUEST_METHOD"]) === "post");
}