i need to convert type string to bson.ObjectId, this is my current code :
type CampaignUpdateBody struct {
CampaignName *string `json:"campaign_name" bson:"campaign_name"`
FromName []string `json:"from_name" bson:"from_name"`
FromEmail *string `json:"from_email" bson:"from_email"`
ReplyEmail *string `json:"reply_email" bson:"reply_email"`
Subject []string `json:"subject" bson:"subject"`
BodyText *string `json:"body_text" bson:"body_text"`
BodyHTML *string `json:"body_html" bson:"body_html"`
SmtpList *string `json:"smtp_list_id" bson:"smtp_list"`
EmailList *string `json:"email_list_id" bson:"email_list"`
}
// LetterTemplateUpdate updates some fields of the letter template.
func (s *Service) CampaignUpdate(c *gin.Context) {
id := bson.ObjectIdHex(c.Param("id"))
if !id.Valid() {
c.JSON(http.StatusBadRequest, gin.H{"error": "id has wrong format"})
return
}
var body CampaignUpdateBody
if err := c.BindJSON(&body); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
token := c.MustGet(tokenKey).(*models.Token)
params := storage.CampaignUpdateParams{}
params.ID = id
//..........................
params.BodyText = body.BodyText
params.BodyHTML = body.BodyHTML
params.SmtpList = body.SmtpList
params.EmailList = body.EmailList
stor := c.MustGet(storageKey).(storage.Storage)
if err := stor.CampaignUpdate(token.UserID, params); err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusOK, gin.H{})
}
and this is my current error :
..\httpservice\campaigns.go:134:19: cannot use body.SmtpList (type *string) as t
ype bson.ObjectId in assignment
..\httpservice\campaigns.go:135:19: cannot use body.EmailList (type *string) as
type bson.ObjectId in assignment
i need convert body.SmtpList type as *string in bson.ObjectId , how i can do this ?