@@ -44,17 +44,19 @@ type OrderManager interface {
4444 OrderQuote (quoteId int , extra datatypes.Container_Product_Order ) (datatypes.Container_Product_Order_Receipt , error )
4545 GetRecalculatedOrderContainer (quoteId int ) (datatypes.Container_Product_Order , error )
4646 GetOrderDetail (orderId int , mask string ) (datatypes.Billing_Order , error )
47+ GetAllCancelation (mask string ) ([]datatypes.Billing_Item_Cancellation_Request , error )
4748 DeleteQuote (quoteId int ) (datatypes.Billing_Order_Quote , error )
4849}
4950
5051type orderManager struct {
51- PackageService services.Product_Package
52- OrderService services.Product_Order
53- LocationService services.Location_Datacenter
54- PackagePreset services.Product_Package_Preset
55- AccountService services.Account
56- BillingOrderQuoteService services.Billing_Order_Quote
57- Session * session.Session
52+ PackageService services.Product_Package
53+ OrderService services.Product_Order
54+ LocationService services.Location_Datacenter
55+ PackagePreset services.Product_Package_Preset
56+ AccountService services.Account
57+ BillingOrderQuoteService services.Billing_Order_Quote
58+ BillingItemCancellationRequestService services.Billing_Item_Cancellation_Request
59+ Session * session.Session
5860}
5961
6062func NewOrderManager (session * session.Session ) * orderManager {
@@ -65,14 +67,15 @@ func NewOrderManager(session *session.Session) *orderManager {
6567 services .GetProductPackagePresetService (session ),
6668 services .GetAccountService (session ),
6769 services .GetBillingOrderQuoteService (session ),
70+ services .GetBillingItemCancellationRequestService (session ),
6871 session ,
6972 }
7073}
7174
72- //Get a single package with a given key.
73- //If no packages are found, returns None
74- //packageKeyname: string representing the package key name we are interested in.
75- //mask: Mask to specify the properties we want to retrieve
75+ // Get a single package with a given key.
76+ // If no packages are found, returns None
77+ // packageKeyname: string representing the package key name we are interested in.
78+ // mask: Mask to specify the properties we want to retrieve
7679func (i orderManager ) GetPackageByKey (packageKeyname , mask string ) (datatypes.Product_Package , error ) {
7780 filters := filter .New (filter .Path ("keyName" ).Eq (packageKeyname ))
7881 packages , err := i .PackageService .Filter (filters .Build ()).Mask (mask ).GetAllObjects ()
@@ -85,8 +88,8 @@ func (i orderManager) GetPackageByKey(packageKeyname, mask string) (datatypes.Pr
8588 return packages [len (packages )- 1 ], nil
8689}
8790
88- //Get details about an image
89- //image: The ID of the image.
91+ // Get details about an image
92+ // image: The ID of the image.
9093func (i orderManager ) ListCategories (packageKeyname string ) ([]datatypes.Product_Package_Order_Configuration , error ) {
9194
9295 packages , err := i .GetPackageByKey (packageKeyname , "id" )
@@ -399,23 +402,23 @@ func (i orderManager) GetPresetPrices(presetId int) (datatypes.Product_Package_P
399402 return prices , nil
400403}
401404
402- //Returns active quotes on your account
405+ // Returns active quotes on your account
403406func (i orderManager ) GetActiveQuotes (mask string ) ([]datatypes.Billing_Order_Quote , error ) {
404407 if mask == "" {
405408 mask = "mask[order[id,items[id,package[id,keyName]]]]"
406409 }
407410 return i .AccountService .Mask (mask ).GetActiveQuotes ()
408411}
409412
410- //Returns active quote detail on your account
413+ // Returns active quote detail on your account
411414func (i orderManager ) GetQuote (quoteId int , mask string ) (datatypes.Billing_Order_Quote , error ) {
412415 if mask == "" {
413416 mask = "mask[order[id,items[package[id,keyName]]]]"
414417 }
415418 return i .BillingOrderQuoteService .Id (quoteId ).Mask (mask ).GetObject ()
416419}
417420
418- //Save quote
421+ // Save quote
419422func (i orderManager ) SaveQuote (quoteId int ) (datatypes.Billing_Order_Quote , error ) {
420423 return i .BillingOrderQuoteService .Id (quoteId ).SaveQuote ()
421424}
@@ -443,8 +446,8 @@ func (i orderManager) GetRecalculatedOrderContainer(quoteId int) (datatypes.Cont
443446}
444447
445448// Return order detail
446- //int orderId: The order identifier.
447- //string mask: The object mask.
449+ // int orderId: The order identifier.
450+ // string mask: The object mask.
448451func (i orderManager ) GetOrderDetail (orderId int , mask string ) (datatypes.Billing_Order , error ) {
449452 if mask == "" {
450453 mask = `mask[orderTotalAmount,orderApprovalDate,
@@ -461,6 +464,17 @@ func (i orderManager) GetOrderDetail(orderId int, mask string) (datatypes.Billin
461464 return billingOrderService .Id (orderId ).Mask (mask ).GetObject ()
462465}
463466
467+ /*
468+ Returns all service cancellation requests
469+ https://sldn.softlayer.com/reference/services/SoftLayer_Billing_Item_Cancellation_Request/getAllCancellationRequests/
470+ */
471+ func (i orderManager ) GetAllCancelation (mask string ) ([]datatypes.Billing_Item_Cancellation_Request , error ) {
472+ if mask == "" {
473+ mask = "mask[id,itemCount,modifyDate,createDate,ticketId,ticket[assignedUserId,id,attachedHardware[id,hostname,domain],attachedVirtualGuests[id,hostname,domain],attachedDedicatedHosts[id,name],serviceProviderResourceId],status[name,id],user[id,firstName,lastName],items[billingItem[cancellationDate,categoryCode,pendingCancellationFlag]]]"
474+ }
475+ return i .BillingItemCancellationRequestService .Mask (mask ).GetAllCancellationRequests ()
476+ }
477+
464478// Delete the quote of an order.
465479func (i orderManager ) DeleteQuote (quoteId int ) (datatypes.Billing_Order_Quote , error ) {
466480 return i .BillingOrderQuoteService .Id (quoteId ).DeleteQuote ()
0 commit comments