feat: Introduce Nullable type for optional fields and update user DTOs accordingly

This commit is contained in:
2025-03-12 08:56:44 +00:00
parent da115dc3f6
commit 233f3cdb5c
9 changed files with 145 additions and 26 deletions
+12 -7
View File
@@ -182,12 +182,17 @@ func (h *UserHandler) UpdateUser(c *gin.Context) {
update.Role = userUpdateDTO.Role
}
if userUpdateDTO.CompanyID != nil {
companyID, err := models.ULIDWrapperFromString(*userUpdateDTO.CompanyID)
if err != nil {
utils.BadRequestResponse(c, "Invalid company ID format")
return
if userUpdateDTO.CompanyID.Valid {
companyID, err := models.ULIDWrapperFromString(*userUpdateDTO.CompanyID.Value)
if err != nil {
utils.BadRequestResponse(c, "Invalid company ID format")
return
}
update.CompanyID = &companyID
} else {
update.CompanyID = nil
}
update.CompanyID = &companyID
}
if userUpdateDTO.HourlyRate != nil {
update.HourlyRate = userUpdateDTO.HourlyRate
@@ -393,8 +398,8 @@ func convertUserToDTO(user *models.User) dto.UserDto {
func convertCreateDTOToModel(dto dto.UserCreateDto) models.UserCreate {
var companyID models.ULIDWrapper
if dto.CompanyID != nil {
companyID, _ = models.ULIDWrapperFromString(*dto.CompanyID) // Ignoring error, validation happens in the model
if dto.CompanyID != nil && dto.CompanyID.Valid {
companyID, _ = models.ULIDWrapperFromString(*dto.CompanyID.Value) // Ignoring error, validation happens in the model
}
return models.UserCreate{