Add getjobs and setjob APIs
This commit is contained in:
parent
4763719ff5
commit
b6c6c28d6c
@ -252,7 +252,7 @@ switch ($VARS['action']) {
|
|||||||
foreach ($groups as $g) {
|
foreach ($groups as $g) {
|
||||||
$gids[] = $g['id'];
|
$gids[] = $g['id'];
|
||||||
}
|
}
|
||||||
$job = $database->has('jobs', ['[>]job_groups' => ['jobid']], ["AND" => ["OR" => ['groupid' => $gids, 'groupid #-1' => -1], 'deleted' => 0]]);
|
$job = $database->has('jobs', ['[>]job_groups' => ['jobid']], ["AND" => ["OR" => ['groupid' => $gids, 'groupid #-1' => -1], 'deleted' => 0, 'jobs.jobid' => $VARS['job']]]);
|
||||||
} else {
|
} else {
|
||||||
$job = $database->has('jobs', 'jobid', ['jobid' => $VARS['job']]);
|
$job = $database->has('jobs', 'jobid', ['jobid' => $VARS['job']]);
|
||||||
}
|
}
|
||||||
|
52
api.php
52
api.php
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Simple JSON API to allow other apps to access data from this app.
|
* Simple JSON API to allow other apps to access data from this app.
|
||||||
*
|
*
|
||||||
* Requests can be sent via either GET or POST requests. POST is recommended
|
* Requests can be sent via either GET or POST requests. POST is recommended
|
||||||
* as it has a lower chance of being logged on the server, exposing unencrypted
|
* as it has a lower chance of being logged on the server, exposing unencrypted
|
||||||
* user passwords.
|
* user passwords.
|
||||||
@ -117,6 +117,56 @@ switch ($VARS['action']) {
|
|||||||
$shifts[$i]['day_list'] = $days;
|
$shifts[$i]['day_list'] = $days;
|
||||||
}
|
}
|
||||||
exit(json_encode(["status" => "OK", "shifts" => $shifts]));
|
exit(json_encode(["status" => "OK", "shifts" => $shifts]));
|
||||||
|
case "getjobs":
|
||||||
|
$jobs = [];
|
||||||
|
if ($database->count("job_groups") > 0) {
|
||||||
|
require_once __DIR__ . "/lib/userinfo.php";
|
||||||
|
$groups = getGroupsByUID($userinfo['uid']);
|
||||||
|
$gids = [];
|
||||||
|
foreach ($groups as $g) {
|
||||||
|
$gids[] = $g['id'];
|
||||||
|
}
|
||||||
|
$jobs = $database->select('jobs', ['[>]job_groups' => ['jobid']], ['jobs.jobid (id)', 'jobname (name)', 'jobcode (code)', 'color'], ["AND" => ["OR" => ['groupid' => $gids, 'groupid #-1' => -1], 'deleted' => 0]]);
|
||||||
|
} else {
|
||||||
|
$jobs = $database->select('jobs', ['jobid (id)', 'jobname (name)', 'jobcode (code)', 'color'], ['deleted' => 0]);
|
||||||
|
}
|
||||||
|
$jobids = [];
|
||||||
|
$out = [];
|
||||||
|
foreach ($jobs as $job) {
|
||||||
|
if (in_array($job['id'], $jobids)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$jobids[] = $job['id'];
|
||||||
|
$out[] = $job;
|
||||||
|
}
|
||||||
|
exit(json_encode(["status" => "OK", "jobs" => $out]));
|
||||||
|
case "setjob":
|
||||||
|
if (is_empty($VARS['job'])) {
|
||||||
|
exit(json_encode(["status" => "ERROR", "msg" => lang("invalid job", false)]));
|
||||||
|
}
|
||||||
|
if ($database->count("job_groups") > 0) {
|
||||||
|
require_once __DIR__ . "/lib/userinfo.php";
|
||||||
|
$groups = getGroupsByUID($userinfo['uid']);
|
||||||
|
$gids = [];
|
||||||
|
foreach ($groups as $g) {
|
||||||
|
$gids[] = $g['id'];
|
||||||
|
}
|
||||||
|
$job = $database->has('jobs', ['[>]job_groups' => ['jobid']], ["AND" => ["OR" => ['groupid' => $gids, 'groupid #-1' => -1], 'deleted' => 0, 'jobs.jobid' => $VARS['job']]]);
|
||||||
|
} else {
|
||||||
|
$job = $database->has('jobs', 'jobid', ['jobid' => $VARS['job']]);
|
||||||
|
}
|
||||||
|
if ($job === true) {
|
||||||
|
// Stop other jobs
|
||||||
|
$database->update('job_tracking', ['end' => date("Y-m-d H:i:s")], ['AND' => ['uid' => $userinfo['uid'], 'end' => null]]);
|
||||||
|
$database->insert('job_tracking', ['uid' => $userinfo['uid'], 'jobid' => $VARS['job'], 'start' => date("Y-m-d H:i:s")]);
|
||||||
|
exit(json_encode(["status" => "OK", "msg" => lang("job changed", false)]));
|
||||||
|
} else if ($VARS['job'] == "-1") {
|
||||||
|
$database->update('job_tracking', ['end' => date("Y-m-d H:i:s")], ['AND' => ['uid' => $userinfo['uid'], 'end' => null]]);
|
||||||
|
exit(json_encode(["status" => "OK", "msg" => lang("job changed", false)]));
|
||||||
|
} else {
|
||||||
|
exit(json_encode(["status" => "ERROR", "msg" => lang("invalid job", false)]));
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
http_response_code(404);
|
http_response_code(404);
|
||||||
die("\"404 Action not found\"");
|
die("\"404 Action not found\"");
|
||||||
|
@ -28,12 +28,17 @@ redirectifnotloggedin();
|
|||||||
foreach ($groups as $g) {
|
foreach ($groups as $g) {
|
||||||
$gids[] = $g['id'];
|
$gids[] = $g['id'];
|
||||||
}
|
}
|
||||||
$jobs = $database->select('jobs', ['[>]job_groups' => ['jobid']], ['jobs.jobid', 'jobname', 'jobcode', 'color'], ["AND" => ["OR" => ['groupid' => $gids, 'groupid #-1' => -1], 'deleted' => 0]]);
|
$jobs = $database->select('job_groups', ['[>]jobs' => ['jobid']], ['jobs.jobid', 'jobname', 'jobcode', 'color'], ["AND" => ["OR" => ['groupid' => $gids, 'groupid #-1' => -1], 'deleted' => 0]]);
|
||||||
} else {
|
} else {
|
||||||
$jobs = $database->select('jobs', ['jobid', 'jobname', 'jobcode', 'color'], ['deleted' => 0]);
|
$jobs = $database->select('jobs', ['jobid', 'jobname', 'jobcode', 'color'], ['deleted' => 0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$jobids = [];
|
||||||
foreach ($jobs as $job) {
|
foreach ($jobs as $job) {
|
||||||
|
if (in_array($job['jobid'], $jobids)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$jobids[] = $job['jobid'];
|
||||||
$color = "default";
|
$color = "default";
|
||||||
if (!is_null($job['color']) && $job['color'] != "") {
|
if (!is_null($job['color']) && $job['color'] != "") {
|
||||||
$color = $job['color'];
|
$color = $job['color'];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user