Serialize PurchaseMethod when value is 0. (#592)

The zero value is a legacy option that is still useful for iOS, but the `omitempty` was ignoring zero values.
This commit is contained in:
Nikola Lukic
2019-06-11 07:04:28 -07:00
committed by Victor Vrantchan
parent 577e4c9538
commit 727b76eb99
3 changed files with 5 additions and 4 deletions

View File

@@ -143,13 +143,13 @@ type InstallApplication struct {
ManagementFlags *int `plist:",omitempty" json:"management_flags,omitempty"`
ChangeManagementState *string `plist:",omitempty" json:"change_management_state,omitempty"`
ManifestURL *string `plist:",omitempty" json:"manifest_url,omitempty"`
Options *InstallApplicationOptions `plist:",omitempty" json:"options,omitempty"`
Options *InstallApplicationOptions `plist:"Options,omitempty" json:"options,omitempty"`
Configuration *InstallApplicationConfiguration `plist:",omitempty" json:"configuration,omitempty"`
Attributes *InstallApplicationAttributes `plist:",omitempty" json:"attributes,omitempty"`
}
type InstallApplicationOptions struct {
PurchaseMethod int64 `plist:",omitempty" json:"purchase_method,omitempty"`
PurchaseMethod *int64 `plist:"PurchaseMethod,omitempty" json:"purchase_method,omitempty"`
}
type InstallApplicationConfiguration struct{}

View File

@@ -165,7 +165,7 @@ func commandToProto(cmd *Command) (*mdmproto.Command, error) {
)
if cmd.InstallApplication.Options != nil {
options = &mdmproto.InstallApplicationOptions{
PurchaseMethod: cmd.InstallApplication.Options.PurchaseMethod,
PurchaseMethod: zeroInt64IfNil(cmd.InstallApplication.Options.PurchaseMethod),
}
}
if cmd.InstallApplication.Configuration != nil {

View File

@@ -131,8 +131,9 @@ func protoToCommand(pb *mdmproto.Command) *Command {
pboptions := pbc.GetOptions()
if pboptions != nil {
options = &InstallApplicationOptions{
PurchaseMethod: pboptions.GetPurchaseMethod(),
PurchaseMethod: new(int64),
}
*options.PurchaseMethod = pboptions.GetPurchaseMethod();
}
pbconfig := pbc.GetConfiguration()