package convert import ( "code.gitea.io/gitea/models" api "code.gitea.io/gitea/modules/structs" ) func ToCloudBrain(task *models.Cloudbrain) *api.Cloudbrain { return &api.Cloudbrain{ ID: task.ID, JobID: task.JobID, JobType: task.JobType, Type: task.Type, DisplayJobName: task.DisplayJobName, Status: task.Status, CreatedUnix: int64(task.CreatedUnix), RepoID: task.RepoID, Duration: task.Duration, TrainJobDuration: task.TrainJobDuration, ImageID: task.ImageID, Image: task.Image, Uuid: task.Uuid, DatasetName: task.DatasetName, ComputeResource: task.ComputeResource, AiCenter: task.AiCenter, BranchName: task.BranchName, Parameters: task.Parameters, BootFile: task.BootFile, Description: task.Description, ModelName: task.ModelName, VersionName: task.VersionName, ModelVersion: task.ModelVersion, CkptName: task.CkptName, StartTime: int64(task.StartTime), EndTime: int64(task.EndTime), Spec: ToSpecification(task.Spec), } } func ToAttachment(attachment *models.Attachment) *api.AttachmentShow { return &api.AttachmentShow{ ID: attachment.ID, UUID: attachment.UUID, DatasetID: attachment.DatasetID, ReleaseID: attachment.ReleaseID, UploaderID: attachment.UploaderID, CommentID: attachment.CommentID, Name: attachment.Name, Description: attachment.Description, DownloadCount: attachment.DownloadCount, UseNumber: attachment.UseNumber, Size: attachment.Size, IsPrivate: attachment.IsPrivate, DecompressState: attachment.DecompressState, Type: attachment.Type, CreatedUnix: int64(attachment.CreatedUnix), } } func ToDataset(dataset *models.Dataset) *api.Dataset { var convertAttachments []*api.AttachmentShow for _, attachment := range dataset.Attachments { convertAttachments = append(convertAttachments, ToAttachment(attachment)) } return &api.Dataset{ ID: dataset.ID, Title: dataset.Title, Status: dataset.Status, Category: dataset.Category, Description: dataset.Description, DownloadTimes: dataset.DownloadTimes, UseCount: dataset.UseCount, NumStars: dataset.NumStars, Recommend: dataset.Recommend, License: dataset.License, Task: dataset.Task, ReleaseID: dataset.ReleaseID, UserID: dataset.UserID, RepoID: dataset.RepoID, Repo: &api.RepositoryShow{ OwnerName: dataset.Repo.OwnerName, Name: dataset.Repo.Name, }, CreatedUnix: int64(dataset.CreatedUnix), UpdatedUnix: int64(dataset.UpdatedUnix), Attachments: convertAttachments, } } func ToSpecification(s *models.Specification) *api.SpecificationShow { if s == nil { return nil } return &api.SpecificationShow{ ID: s.ID, AccCardsNum: s.AccCardsNum, AccCardType: s.AccCardType, CpuCores: s.CpuCores, MemGiB: s.MemGiB, GPUMemGiB: s.GPUMemGiB, ShareMemGiB: s.ShareMemGiB, ComputeResource: s.ComputeResource, UnitPrice: s.UnitPrice, } } func ToTagger(user *models.User) *api.Tagger { return &api.Tagger{ ID: user.ID, Name: user.Name, RelAvatarURL: user.RelAvatarLink(), Email: user.Email, } }