| 728 | } |
| 729 | |
| 730 | func (c *SpaceComponent) mergeUpdateSpaceRequest(ctx context.Context, space *database.Space, req *types.UpdateSpaceReq) error { |
| 731 | // Do not update column value if request body do not have it |
| 732 | if req.Sdk != nil { |
| 733 | space.Sdk = *req.Sdk |
| 734 | } |
| 735 | if req.SdkVersion != nil { |
| 736 | space.SdkVersion = *req.SdkVersion |
| 737 | } |
| 738 | if req.Env != nil { |
| 739 | space.Env = *req.Env |
| 740 | } |
| 741 | if req.Secrets != nil { |
| 742 | space.Secrets = *req.Secrets |
| 743 | } |
| 744 | if req.Template != nil { |
| 745 | space.Template = *req.Template |
| 746 | } |
| 747 | if req.CoverImageUrl != nil { |
| 748 | space.CoverImageUrl = *req.CoverImageUrl |
| 749 | } |
| 750 | |
| 751 | if req.ResourceID != nil { |
| 752 | resource, err := c.srs.FindByID(ctx, *req.ResourceID) |
| 753 | if err != nil { |
| 754 | return fmt.Errorf("can't find space resource by id, resource id:%d, error:%w", *req.ResourceID, err) |
| 755 | } |
| 756 | space.Hardware = resource.Resources |
| 757 | space.SKU = strconv.FormatInt(resource.ID, 10) |
| 758 | } |
| 759 | |
| 760 | return nil |
| 761 | } |
| 762 | |
| 763 | const ( |
| 764 | // SpaceStatusEmpty is the init status by default |