API: Improve error handling for 'schedule-downtime' action

This commit is contained in:
Michael Friedrich 2019-07-02 11:15:43 +02:00
parent f72ef9360d
commit 8ca38302fc
1 changed files with 10 additions and 0 deletions

View File

@ -337,6 +337,16 @@ Dictionary::Ptr ApiActions::ScheduleDowntime(const ConfigObject::Ptr& object,
String comment = HttpUtility::GetLastParameter(params, "comment");
double startTime = HttpUtility::GetLastParameter(params, "start_time");
double endTime = HttpUtility::GetLastParameter(params, "end_time");
double now = Utility::GetTime();
if (author.IsEmpty() || comment.IsEmpty())
return ApiActions::CreateResult(400, "Options 'author' and 'comment' must not be empty");
if (startTime < now || endTime < now)
return ApiActions::CreateResult(400, "Options 'start_time' and 'end_time' must be greater than current timestamp");
if (endTime < startTime)
return ApiActions::CreateResult(400, "Option 'end_time' must be greater than 'start_time'");
Host::Ptr host;
Service::Ptr service;