fix task validation to not allow end time before created time, and disallow <=0 amounts.
continuous-integration/drone/push Build is passing
continuous-integration/drone/push Build is passing
This commit is contained in:
+13
-2
@@ -33,13 +33,17 @@ func Task(g *gin.RouterGroup, db database.Database) {
|
|||||||
}))
|
}))
|
||||||
|
|
||||||
g.POST("/", handler("task", func(c *gin.Context) (interface{}, error) {
|
g.POST("/", handler("task", func(c *gin.Context) (interface{}, error) {
|
||||||
|
createdTime := time.Now()
|
||||||
task := models.Task{}
|
task := models.Task{}
|
||||||
err := c.BindJSON(&task)
|
err := c.BindJSON(&task)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, slerrors.BadRequest("Invalid JSON")
|
return nil, slerrors.BadRequest("Invalid JSON")
|
||||||
}
|
}
|
||||||
if task.EndTime != nil && task.EndTime.Before(time.Now()) {
|
if task.EndTime != nil && task.EndTime.Before(createdTime) {
|
||||||
return nil, slerrors.BadRequest("Project end time must be later than current time.")
|
return nil, slerrors.BadRequest("Task end time must be later than current time.")
|
||||||
|
}
|
||||||
|
if task.ItemAmount <= 0 {
|
||||||
|
return nil, slerrors.BadRequest("Item amount cannot be zero or negative.")
|
||||||
}
|
}
|
||||||
|
|
||||||
project, err := l.FindProject(c.Request.Context(), task.ProjectID)
|
project, err := l.FindProject(c.Request.Context(), task.ProjectID)
|
||||||
@@ -83,6 +87,13 @@ func Task(g *gin.RouterGroup, db database.Database) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
task.Update(update)
|
task.Update(update)
|
||||||
|
if task.EndTime != nil && task.EndTime.Before(task.CreatedTime) {
|
||||||
|
return nil, slerrors.BadRequest("Task end time must be later than it was created.")
|
||||||
|
}
|
||||||
|
if task.ItemAmount <= 0 {
|
||||||
|
return nil, slerrors.BadRequest("Item amount cannot be zero or negative.")
|
||||||
|
}
|
||||||
|
|
||||||
err = db.Tasks().Update(c.Request.Context(), task.Task)
|
err = db.Tasks().Update(c.Request.Context(), task.Task)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
@@ -10,10 +10,12 @@
|
|||||||
export let log: LogResult = null;
|
export let log: LogResult = null;
|
||||||
|
|
||||||
let taskIconName: IconName = "question";
|
let taskIconName: IconName = "question";
|
||||||
|
let itemIconName: IconName = "question";
|
||||||
let mdLogEdit: ModalData;
|
let mdLogEdit: ModalData;
|
||||||
let mdLogDelete: ModalData;
|
let mdLogDelete: ModalData;
|
||||||
|
|
||||||
$: taskIconName = log.task.icon as IconName;
|
$: taskIconName = log.task.icon as IconName;
|
||||||
|
$: itemIconName = log.item.icon as IconName;
|
||||||
$: mdLogEdit = {name: "log.edit", log};
|
$: mdLogEdit = {name: "log.edit", log};
|
||||||
$: mdLogDelete = {name: "log.delete", log};
|
$: mdLogDelete = {name: "log.delete", log};
|
||||||
</script>
|
</script>
|
||||||
@@ -31,7 +33,7 @@
|
|||||||
<p>{log.description}</p>
|
<p>{log.description}</p>
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<div class="item-icon">
|
<div class="item-icon">
|
||||||
<Icon name={log.item.icon} />
|
<Icon name={itemIconName} />
|
||||||
</div>
|
</div>
|
||||||
<div class="item-name">{log.item.name} ({log.item.groupWeight})</div>
|
<div class="item-name">{log.item.name} ({log.item.groupWeight})</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -26,6 +26,8 @@
|
|||||||
projectStore.markStale();
|
projectStore.markStale();
|
||||||
fpProjectStore.markStale();
|
fpProjectStore.markStale();
|
||||||
modalStore.close();
|
modalStore.close();
|
||||||
|
}).catch(err => {
|
||||||
|
error = err.message ? err.message : err.toString();
|
||||||
})
|
})
|
||||||
|
|
||||||
error = null;
|
error = null;
|
||||||
|
|||||||
@@ -33,6 +33,8 @@ import Checkbox from "../components/Checkbox.svelte";
|
|||||||
goalStore.markStale();
|
goalStore.markStale();
|
||||||
fpGoalStore.markStale();
|
fpGoalStore.markStale();
|
||||||
modalStore.close();
|
modalStore.close();
|
||||||
|
}).catch(err => {
|
||||||
|
error = err.message ? err.message : err.toString();
|
||||||
})
|
})
|
||||||
|
|
||||||
error = null;
|
error = null;
|
||||||
|
|||||||
Reference in New Issue
Block a user