47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
syncsvc "verstak/internal/core/sync"
|
|
)
|
|
|
|
func (a *App) ListWorklog(nodeID string) ([]WorklogDTO, error) {
|
|
list, err := a.worklog.ListByNode(nodeID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
result := make([]WorklogDTO, len(list))
|
|
for i := range list {
|
|
mins := 0
|
|
if list[i].Minutes != nil {
|
|
mins = *list[i].Minutes
|
|
}
|
|
result[i] = WorklogDTO{
|
|
ID: list[i].ID,
|
|
NodeID: list[i].NodeID,
|
|
Summary: list[i].Summary,
|
|
Minutes: mins,
|
|
CreatedAt: list[i].CreatedAt.Format("2006-01-02T15:04:05Z"),
|
|
}
|
|
}
|
|
return result, nil
|
|
}
|
|
|
|
func (a *App) CreateWorklog(nodeID, summary string, minutes int) (*WorklogDTO, error) {
|
|
entry, err := a.worklog.Add(nodeID, summary, "", minutes, false, false)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
_ = a.sync.RecordOp(syncsvc.EntityWorklog, entry.ID, syncsvc.OpCreate, worklogPayload(entry))
|
|
mins := 0
|
|
if entry.Minutes != nil {
|
|
mins = *entry.Minutes
|
|
}
|
|
return &WorklogDTO{
|
|
ID: entry.ID,
|
|
NodeID: entry.NodeID,
|
|
Summary: entry.Summary,
|
|
Minutes: mins,
|
|
CreatedAt: entry.CreatedAt.Format("2006-01-02T15:04:05Z"),
|
|
}, nil
|
|
}
|