1- package convert
1+ package db
22
33import (
44 "encoding/json"
55
6- "workspace-engine/pkg/db"
76 "workspace-engine/pkg/oapi"
87
98 "github.com/google/uuid"
109)
1110
12- func Deployment (row db. Deployment ) * oapi.Deployment {
11+ func ToOapiDeployment (row Deployment ) * oapi.Deployment {
1312 d := & oapi.Deployment {
1413 Id : row .ID .String (),
1514 Name : row .Name ,
@@ -26,7 +25,7 @@ func Deployment(row db.Deployment) *oapi.Deployment {
2625 return d
2726}
2827
29- func Environment (row db. Environment ) * oapi.Environment {
28+ func ToOapiEnvironment (row Environment ) * oapi.Environment {
3029 e := & oapi.Environment {
3130 Id : row .ID .String (),
3231 Name : row .Name ,
@@ -41,7 +40,7 @@ func Environment(row db.Environment) *oapi.Environment {
4140 return e
4241}
4342
44- func Resource (row db. GetResourceByIDRow ) * oapi.Resource {
43+ func ToOapiResource (row GetResourceByIDRow ) * oapi.Resource {
4544 r := & oapi.Resource {
4645 Id : row .ID .String (),
4746 Name : row .Name ,
@@ -70,7 +69,7 @@ func Resource(row db.GetResourceByIDRow) *oapi.Resource {
7069 return r
7170}
7271
73- func Policy (row db. Policy ) * oapi.Policy {
72+ func ToOapiPolicy (row Policy ) * oapi.Policy {
7473 p := & oapi.Policy {
7574 Id : row .ID .String (),
7675 Name : row .Name ,
@@ -89,7 +88,7 @@ func Policy(row db.Policy) *oapi.Policy {
8988 return p
9089}
9190
92- func UserApprovalRecord (row db. UserApprovalRecord ) * oapi.UserApprovalRecord {
91+ func ToOapiUserApprovalRecord (row UserApprovalRecord ) * oapi.UserApprovalRecord {
9392 r := & oapi.UserApprovalRecord {
9493 VersionId : row .VersionID .String (),
9594 UserId : row .UserID .String (),
@@ -105,7 +104,7 @@ func UserApprovalRecord(row db.UserApprovalRecord) *oapi.UserApprovalRecord {
105104 return r
106105}
107106
108- func PolicySkip (row db. PolicySkip ) * oapi.PolicySkip {
107+ func ToOapiPolicySkip (row PolicySkip ) * oapi.PolicySkip {
109108 s := & oapi.PolicySkip {
110109 Id : row .ID .String (),
111110 CreatedBy : row .CreatedBy ,
@@ -131,7 +130,7 @@ func PolicySkip(row db.PolicySkip) *oapi.PolicySkip {
131130 return s
132131}
133132
134- func DeploymentVariable (row db. DeploymentVariable ) oapi.DeploymentVariable {
133+ func ToOapiDeploymentVariable (row DeploymentVariable ) oapi.DeploymentVariable {
135134 v := oapi.DeploymentVariable {
136135 Id : row .ID .String (),
137136 DeploymentId : row .DeploymentID .String (),
@@ -149,7 +148,7 @@ func DeploymentVariable(row db.DeploymentVariable) oapi.DeploymentVariable {
149148 return v
150149}
151150
152- func DeploymentVariableValue (row db. DeploymentVariableValue ) oapi.DeploymentVariableValue {
151+ func ToOapiDeploymentVariableValue (row DeploymentVariableValue ) oapi.DeploymentVariableValue {
153152 v := oapi.DeploymentVariableValue {
154153 Id : row .ID .String (),
155154 DeploymentVariableId : row .DeploymentVariableID .String (),
@@ -167,7 +166,7 @@ func DeploymentVariableValue(row db.DeploymentVariableValue) oapi.DeploymentVari
167166 return v
168167}
169168
170- func ResourceVariable (row db. ResourceVariable ) oapi.ResourceVariable {
169+ func ToOapiResourceVariable (row ResourceVariable ) oapi.ResourceVariable {
171170 v := oapi.ResourceVariable {
172171 ResourceId : row .ResourceID .String (),
173172 Key : row .Key ,
@@ -178,7 +177,37 @@ func ResourceVariable(row db.ResourceVariable) oapi.ResourceVariable {
178177 return v
179178}
180179
181- func DeploymentVersion (row db.DeploymentVersion ) * oapi.DeploymentVersion {
180+ func ToOapiSystem (row System ) * oapi.System {
181+ s := & oapi.System {
182+ Id : row .ID .String (),
183+ Name : row .Name ,
184+ WorkspaceId : row .WorkspaceID .String (),
185+ }
186+ if row .Description != "" {
187+ s .Description = & row .Description
188+ }
189+ return s
190+ }
191+
192+ func ToOapiRelease (row Release ) * oapi.Release {
193+ var createdAt string
194+ if row .CreatedAt .Valid {
195+ createdAt = row .CreatedAt .Time .Format ("2006-01-02T15:04:05Z07:00" )
196+ }
197+ return & oapi.Release {
198+ Id : row .ID ,
199+ CreatedAt : createdAt ,
200+ ReleaseTarget : oapi.ReleaseTarget {
201+ ResourceId : row .ResourceID .String (),
202+ EnvironmentId : row .EnvironmentID .String (),
203+ DeploymentId : row .DeploymentID .String (),
204+ },
205+ EncryptedVariables : []string {},
206+ Variables : map [string ]oapi.LiteralValue {},
207+ }
208+ }
209+
210+ func ToOapiDeploymentVersion (row DeploymentVersion ) * oapi.DeploymentVersion {
182211 v := & oapi.DeploymentVersion {
183212 Id : row .ID .String (),
184213 Name : row .Name ,
@@ -197,3 +226,60 @@ func DeploymentVersion(row db.DeploymentVersion) *oapi.DeploymentVersion {
197226 }
198227 return v
199228}
229+
230+ func ToOapiJob (row ListJobsByReleaseIDRow ) * oapi.Job {
231+ j := & oapi.Job {
232+ Id : row .ID .String (),
233+ Status : oapi .JobStatus (row .Status ),
234+ ReleaseId : row .ReleaseID .String (),
235+ }
236+ if row .CreatedAt .Valid {
237+ j .CreatedAt = row .CreatedAt .Time
238+ }
239+ if row .CompletedAt .Valid {
240+ t := row .CompletedAt .Time
241+ j .CompletedAt = & t
242+ }
243+ if row .StartedAt .Valid {
244+ t := row .StartedAt .Time
245+ j .StartedAt = & t
246+ }
247+ if row .UpdatedAt .Valid {
248+ j .UpdatedAt = row .UpdatedAt .Time
249+ }
250+ if row .ExternalID .Valid {
251+ j .ExternalId = & row .ExternalID .String
252+ }
253+ if row .Message .Valid {
254+ j .Message = & row .Message .String
255+ }
256+ if row .JobAgentID .Valid {
257+ j .JobAgentId = uuid .UUID (row .JobAgentID .Bytes ).String ()
258+ }
259+ if len (row .JobAgentConfig ) > 0 {
260+ var cfg oapi.JobAgentConfig
261+ if err := json .Unmarshal (row .JobAgentConfig , & cfg ); err == nil {
262+ j .JobAgentConfig = cfg
263+ }
264+ }
265+ j .Metadata = parseJobMetadata (row .Metadata )
266+ return j
267+ }
268+
269+ func parseJobMetadata (raw []byte ) map [string ]string {
270+ if len (raw ) == 0 {
271+ return map [string ]string {}
272+ }
273+ var items []struct {
274+ Key string `json:"key"`
275+ Value string `json:"value"`
276+ }
277+ if err := json .Unmarshal (raw , & items ); err != nil {
278+ return map [string ]string {}
279+ }
280+ result := make (map [string ]string , len (items ))
281+ for _ , item := range items {
282+ result [item .Key ] = item .Value
283+ }
284+ return result
285+ }
0 commit comments