Skip to content

Commit fcd4f1d

Browse files
add multiple processes, optional backup feed
1 parent 89a3b26 commit fcd4f1d

File tree

5 files changed

+40
-6
lines changed

5 files changed

+40
-6
lines changed

common.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,16 @@ public function validate($processitem)
2727
{
2828
$settings = $this->description()["settings"];
2929
foreach ($settings as $key=>$setting) {
30-
if (!isset($processitem->{$key})) {
30+
$optional = !empty($setting['optional']);
31+
32+
if (!isset($processitem->{$key}) && !$optional) {
3133
return array("success" => false, "message" => "setting ".$key." not set\n");
3234
}
3335

36+
if (!isset($processitem->{$key}) && $optional) {
37+
continue;
38+
}
39+
3440
if ($setting["type"] == "feed" || $setting["type"] == "newfeed") {
3541
$feedid = (int) $processitem->{$key};
3642
if (!file_exists($this->dir.$feedid.".meta")) {

module.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name" : "Postprocess",
3-
"version" : "2.4.7",
3+
"version" : "2.4.8",
44
"location" : "/opt/emoncms/modules",
55
"branches_available": ["stable","master"],
66
"requires": []

postprocess-module/postprocess_controller.php

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,23 @@ function postprocess_controller()
4848

4949
if ($route->action == "create") {
5050
$params = json_decode(file_get_contents('php://input'));
51-
return $postprocess->add($session['userid'], $params);
51+
52+
// if array of processes, add each one, else add single process
53+
if (is_array($params)) {
54+
$response = array();
55+
$success_count = 0;
56+
foreach ($params as $process) {
57+
$result = $postprocess->add($session['userid'], $process);
58+
if ($result['success'] == false) {
59+
return $result;
60+
} else {
61+
$success_count++;
62+
}
63+
}
64+
return array("success" => true, "count" => $success_count);
65+
} else {
66+
return $postprocess->add($session['userid'], $params);
67+
}
5268
}
5369

5470
if ($route->action == 'edit') {

postprocess-module/postprocess_model.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,8 +244,15 @@ public function validate_params($userid,$params) {
244244
$process = $params->process;
245245

246246
foreach ($this->processes[$process]['settings'] as $key => $option) {
247-
if (!isset($params->$key))
248-
return array('success'=>false, 'message'=>"missing option $key");
247+
$optional = !empty($option['optional']);
248+
249+
if ($optional && !isset($params->$key)) {
250+
continue; // Skip processing for optional missing parameters
251+
}
252+
253+
if (!isset($params->$key)) {
254+
return array('success' => false, 'message' => "missing option $key");
255+
}
249256

250257
if ($option['type'] == "feed" || $option['type'] == "newfeed") {
251258
$feedid = (int) $params->$key;

processes/downsample.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,12 @@ public function process($processitem)
2424
$dir = $this->dir;
2525
$feed = $processitem->feed;
2626
$new_interval = $processitem->new_interval;
27-
$backup = $processitem->backup;
27+
28+
if (isset($processitem->backup)) {
29+
$backup = $processitem->backup;
30+
} else {
31+
$backup = false;
32+
}
2833

2934
$input_meta = getmeta($dir, $feed);
3035

0 commit comments

Comments
 (0)