func addTask(sess *session, t *model.TaskDTO) error { task := model.Task{ Name: t.Name, OrgId: t.OrgId, Interval: t.Interval, Enabled: t.Enabled, Config: t.Config, Route: t.Route, Created: time.Now(), Updated: time.Now(), } sess.UseBool("enabled") if _, err := sess.Insert(&task); err != nil { return err } t.Created = task.Created t.Updated = task.Updated t.Id = task.Id // handle metrics. metrics := make([]*model.TaskMetric, 0, len(t.Metrics)) for namespace, ver := range t.Metrics { metrics = append(metrics, &model.TaskMetric{ TaskId: t.Id, Namespace: namespace, Version: ver, Created: time.Now(), }) } if len(metrics) > 0 { sess.Table("task_metric") if _, err := sess.Insert(&metrics); err != nil { return err } } // add routeIndexes return addTaskRoute(sess, t) }