Hi
I am working on a Coupon form in which I have some optional fields.
*Introduction:*
All the form field values are received as JSON and mapped into a Golang
structure. In the structure, I have added an "omitempty" flag with every
field. So only those form values are mapped which have some appropriate
value, rest of the values like 0, " ", false are ignored by the structure.
Here is the Golang structure
type Coupon struct {
Id int `json:"id,omitempty" bson:"_id,omitempty"`
Name string `json:"name,omitempty" bson:"name,omitempty"`
Code string `json:"code,omitempty" bson:"code,omitempty"`
Description string `json:"description,omitempty"
bson:"description,omitempty"`
Status bool `json:"status" bson:"status"`
MaxUsageLimit int `json:"max_usage_limit,omitempty"
bson:"max_usage_limit,omitempty"`
SingleUsePerUser bool `json:"single_use_per_user,omitempty"
bson:"single_use_per_user,omitempty"`}
*Problem:*
1.
When I save this form for the very first time, the form values that are
appropriate are saved into the Mongodb.
2.
Now I want to update that form and suppose there is a check box, which
was checked at the time of saving data. While updating form, the checkbox
is unchecked and form is submitted to save. Now as I have applied
"omitempty" flag in the structure, so its not mapping the empty value to
the checkbox field. Since the value is not mapped into the structure, its
not getting saved into the Database.
3.
When a user edits the form for the second time, it sees the same check
box as checked. (But practically, the value should be updated to the DB and
the check box should be displayed as unchecked.)
4.
I am using the same form data (in JSON format) in a REST API. In API,
while updating form data, if I mention only those values which are required
and don't pass the values which I don't want to update, then MongoDB is
overriding the whole document with the provided required values(Even those
values are also being overridden which I don't want to update as well as
don't pass in the API).
*Requirement:*
In future, I want to expose the REST API, So I don't want this thing to be
happened there. That is why I don't want to remove "omitempty" flag from
the structure fields.
Is there any way to save the empty form values or API data fields to the DB
while using omitempty flag in the structure?
Thanks!
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.