| 376 | } |
| 377 | |
| 378 | func convertProvisionerJob(pj database.GetProvisionerJobsByIDsWithQueuePositionRow) codersdk.ProvisionerJob { |
| 379 | provisionerJob := pj.ProvisionerJob |
| 380 | job := codersdk.ProvisionerJob{ |
| 381 | ID: provisionerJob.ID, |
| 382 | OrganizationID: provisionerJob.OrganizationID, |
| 383 | InitiatorID: provisionerJob.InitiatorID, |
| 384 | CreatedAt: provisionerJob.CreatedAt, |
| 385 | Type: codersdk.ProvisionerJobType(provisionerJob.Type), |
| 386 | Error: provisionerJob.Error.String, |
| 387 | ErrorCode: codersdk.JobErrorCode(provisionerJob.ErrorCode.String), |
| 388 | FileID: provisionerJob.FileID, |
| 389 | Tags: provisionerJob.Tags, |
| 390 | QueuePosition: int(pj.QueuePosition), |
| 391 | QueueSize: int(pj.QueueSize), |
| 392 | LogsOverflowed: provisionerJob.LogsOverflowed, |
| 393 | } |
| 394 | // Applying values optional to the struct. |
| 395 | if provisionerJob.StartedAt.Valid { |
| 396 | job.StartedAt = &provisionerJob.StartedAt.Time |
| 397 | } |
| 398 | if provisionerJob.CompletedAt.Valid { |
| 399 | job.CompletedAt = &provisionerJob.CompletedAt.Time |
| 400 | } |
| 401 | if provisionerJob.CanceledAt.Valid { |
| 402 | job.CanceledAt = &provisionerJob.CanceledAt.Time |
| 403 | } |
| 404 | if provisionerJob.WorkerID.Valid { |
| 405 | job.WorkerID = &provisionerJob.WorkerID.UUID |
| 406 | } |
| 407 | job.Status = codersdk.ProvisionerJobStatus(pj.ProvisionerJob.JobStatus) |
| 408 | |
| 409 | // Only unmarshal input if it exists, this should only be zero in testing. |
| 410 | if len(provisionerJob.Input) > 0 { |
| 411 | if err := json.Unmarshal(provisionerJob.Input, &job.Input); err != nil { |
| 412 | job.Input.Error = xerrors.Errorf("decode input %s: %w", provisionerJob.Input, err).Error() |
| 413 | } |
| 414 | } |
| 415 | |
| 416 | return job |
| 417 | } |
| 418 | |
| 419 | func convertProvisionerJobWithQueuePosition(pj database.GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisionerRow) codersdk.ProvisionerJob { |
| 420 | job := convertProvisionerJob(database.GetProvisionerJobsByIDsWithQueuePositionRow{ |