lib/app/product-helpers.go

106 lines
3.8 KiB
Go
Raw Permalink Normal View History

2021-01-14 06:36:35 +00:00
package app
import (
"database/sql"
"time"
"code.tnxs.net/taxnexus/lib/api/ops/ops_models"
"github.com/google/uuid"
)
2021-01-18 03:13:54 +00:00
// UnMarshalProduct decodes swagger to first class object
2021-01-14 06:36:35 +00:00
func UnMarshalProduct(s *ops_models.Product) *Product {
if s.ID == "" {
s.ID = uuid.New().String()
}
createdDate, e0 := time.Parse(dateTimeFormat, s.CreatedDate)
return &Product{
ID: s.ID,
AccountID: s.AccountID,
AgencyType: s.AgencyType,
AssetTracking: s.AssetTracking,
CreatedByID: s.CreatedByID,
Description: s.Description,
DescriptionSKU: s.DescriptionSKU,
DisplayURL: s.DisplayURL,
Family: s.Family,
Image500: s.Image500,
ImageFull: s.ImageFull,
InventoryTracking: s.InventoryTracking,
IsActive: s.IsActive,
IsGeneric: s.IsGeneric,
LastModifiedByID: s.LastModifiedByID,
Manufacturer: s.Manufacturer,
ManufacturerProductCode: s.ManufacturerProductCode,
MRCInterval: s.MRCInterval,
MSRP: s.MSRP,
Name: s.Name,
ProductCode: s.ProductCode,
Prorateable: s.Prorateable,
Publish: s.Publish,
PublishUPC: s.PublishUPC,
QuantityUnitOfMeasure: s.QuantityUnitOfMeasure,
Refundable: s.Refundable,
ShippingWeight: s.ShippingWeight,
SKU: s.SKU,
Specifications: s.Specifications,
TaxnexusCode: s.TaxnexusCode,
TaxnexusCodeID: s.TaxnexusCodeID,
TenantID: s.TenantID,
Units: s.Units,
VendorID: s.VendorID,
VendorName: s.VendorName,
VendorPartNumber: s.VendorPartNumber,
VendorPrice: s.VendorPrice,
CreatedDate: sql.NullTime{
Time: createdDate,
Valid: e0 == nil,
},
}
}
2021-01-18 03:13:54 +00:00
// MarshalToSwagger encodes first class object
2021-01-14 06:36:35 +00:00
func (obj *Product) MarshalToSwagger() *ops_models.Product {
return &ops_models.Product{
ID: obj.ID,
AccountID: obj.AccountID,
AgencyType: obj.AgencyType,
AssetTracking: obj.AssetTracking,
CreatedByID: obj.CreatedByID,
CreatedDate: obj.CreatedDate.Time.Format(dateTimeFormat),
Description: obj.Description,
DescriptionSKU: obj.DescriptionSKU,
DisplayURL: obj.DisplayURL,
Family: obj.Family,
Image500: obj.Image500,
ImageFull: obj.ImageFull,
InventoryTracking: obj.InventoryTracking,
IsActive: obj.IsActive,
IsGeneric: obj.IsGeneric,
LastModifiedByID: obj.LastModifiedByID,
Manufacturer: obj.Manufacturer,
ManufacturerProductCode: obj.ManufacturerProductCode,
MRCInterval: obj.MRCInterval,
MSRP: obj.MSRP,
Name: obj.Name,
ProductCode: obj.ProductCode,
Prorateable: obj.Prorateable,
Publish: obj.Publish,
PublishUPC: obj.PublishUPC,
QuantityUnitOfMeasure: obj.QuantityUnitOfMeasure,
Refundable: obj.Refundable,
ShippingWeight: obj.ShippingWeight,
SKU: obj.SKU,
Specifications: obj.Specifications,
TaxnexusCode: obj.TaxnexusCode,
TaxnexusCodeID: obj.TaxnexusCodeID,
TenantID: obj.TenantID,
Units: obj.Units,
VendorID: obj.VendorID,
VendorName: obj.VendorName,
VendorPartNumber: obj.VendorPartNumber,
VendorPrice: obj.VendorPrice,
LastModifiedDate: obj.LastModifiedDate.Time.Format(dateTimeFormat),
}
}