generated from VLADIMIR/template
66 lines
1.5 KiB
Go
66 lines
1.5 KiB
Go
package app
|
|
|
|
import (
|
|
"evening_detective_server/internal/services/task_service"
|
|
proto "evening_detective_server/proto"
|
|
|
|
"google.golang.org/protobuf/types/known/timestamppb"
|
|
)
|
|
|
|
func taskInput(title, description, status string, assigneeID *int32, dueDate string) (task_service.Task, error) {
|
|
date, err := task_service.ParseDueDate(dueDate)
|
|
if err != nil {
|
|
return task_service.Task{}, err
|
|
}
|
|
return task_service.Task{
|
|
Title: title,
|
|
Description: description,
|
|
Status: status,
|
|
AssigneeID: taskDomainID(assigneeID),
|
|
DueDate: date,
|
|
}, nil
|
|
}
|
|
|
|
func taskDomainID(value *int32) *int {
|
|
if value == nil {
|
|
return nil
|
|
}
|
|
result := int(*value)
|
|
return &result
|
|
}
|
|
|
|
func taskProtoID(value *int) *int32 {
|
|
if value == nil {
|
|
return nil
|
|
}
|
|
result := int32(*value)
|
|
return &result
|
|
}
|
|
|
|
func mapTask(task *task_service.Task) *proto.DeveloperTask {
|
|
dueDate := ""
|
|
if task.DueDate != nil {
|
|
dueDate = task.DueDate.Format("2006-01-02")
|
|
}
|
|
return &proto.DeveloperTask{
|
|
ID: int32(task.ID),
|
|
Title: task.Title,
|
|
Description: task.Description,
|
|
Status: task.Status,
|
|
AssigneeID: taskProtoID(task.AssigneeID),
|
|
AssigneeName: task.AssigneeName,
|
|
AuthorID: taskProtoID(task.AuthorID),
|
|
DueDate: dueDate,
|
|
CreatedAt: timestamppb.New(task.CreatedAt),
|
|
UpdatedAt: timestamppb.New(task.UpdatedAt),
|
|
Version: int32(task.Version),
|
|
}
|
|
}
|
|
|
|
func mapTaskAssignee(user task_service.Assignee) *proto.TaskAssignee {
|
|
return &proto.TaskAssignee{
|
|
ID: int32(user.ID),
|
|
Name: user.Name,
|
|
}
|
|
}
|