more work on Reseller API

This commit is contained in:
Jay Lee
2017-02-04 14:57:42 -05:00
parent 56a60d1651
commit 7104b24633

View File

@ -7276,41 +7276,41 @@ def doWhatIs():
sys.stderr.write(u'%s is a group alias\n\n' % email) sys.stderr.write(u'%s is a group alias\n\n' % email)
doGetAliasInfo(alias_email=email) doGetAliasInfo(alias_email=email)
def convertSKU2ProductId(res, sku, customer_id): def convertSKU2ProductId(res, sku, customerId):
subscriptionId = None subscriptionId = None
results = callGAPI(res.subscriptions(), u'list', customerId=customer_id) results = callGAPI(res.subscriptions(), u'list', customerId=customerId)
for subscription in results[u'subscriptions']: for subscription in results[u'subscriptions']:
if sku == subscription[u'skuId']: if sku == subscription[u'skuId']:
subscriptionId = subscription[u'subscriptionId'] subscriptionId = subscription[u'subscriptionId']
break break
if not subscriptionId: if not subscriptionId:
print u'ERROR: could not find subscription for customer %s and SKU %s' % (customer_id, sku) print u'ERROR: could not find subscription for customer %s and SKU %s' % (customerId, sku)
sys.exit(3) sys.exit(3)
return subscriptionId return subscriptionId
def doDeleteResoldSubscription(): def doDeleteResoldSubscription():
res = buildGAPIObject(u'reseller') res = buildGAPIObject(u'reseller')
customer_id = sys.argv[3] customerId = sys.argv[3]
sku = sys.argv[4] sku = sys.argv[4]
deletionType = sys.argv[5] deletionType = sys.argv[5]
subscriptionId = convertSKU2ProductId(res, sku, customer_id) subscriptionId = convertSKU2ProductId(res, sku, customerId)
callGAPI(res.subscriptions(), u'delete', customerId=customer_id, subscriptionId=subscriptionId, deletionType=deletionType) callGAPI(res.subscriptions(), u'delete', customerId=customerId, subscriptionId=subscriptionId, deletionType=deletionType)
print u'Cancelled %s for %s' % (sku, customer_id) print u'Cancelled %s for %s' % (sku, customerId)
def doCreateResoldSubscription(): def doCreateResoldSubscription():
res = buildGAPIObject(u'reseller') res = buildGAPIObject(u'reseller')
customer_id = sys.argv[3] customerId = sys.argv[3]
customerAuthToken, body = _getResoldSubscriptionAttr(sys.argv[4:], customer_id) customerAuthToken, body = _getResoldSubscriptionAttr(sys.argv[4:], customerId)
result = callGAPI(res.subscriptions(), u'insert', customerId=customer_id, customerAuthToken=customerAuthToken, body=body, fields=u'customerId') result = callGAPI(res.subscriptions(), u'insert', customerId=customerId, customerAuthToken=customerAuthToken, body=body, fields=u'customerId')
print u'Created subscription:' print u'Created subscription:'
print_json(None, result) print_json(None, result)
def doUpdateResoldSubscription(): def doUpdateResoldSubscription():
res = buildGAPIObject(u'reseller') res = buildGAPIObject(u'reseller')
function = None function = None
customer_id = sys.argv[3] customerId = sys.argv[3]
sku = sys.argv[4] sku = sys.argv[4]
subscriptionId = convertSKU2ProductId(res, sku, customer_id) subscriptionId = convertSKU2ProductId(res, sku, customerId)
kwargs = {} kwargs = {}
i = 5 i = 5
while i < len(sys.argv): while i < len(sys.argv):
@ -7333,36 +7333,62 @@ def doUpdateResoldSubscription():
kwargs[u'body'] = {u'numberOfSeats': sys.argv[i+1]} kwargs[u'body'] = {u'numberOfSeats': sys.argv[i+1]}
if len(sys.argv) > i + 2 and sys.argv[i+2].isdigit(): if len(sys.argv) > i + 2 and sys.argv[i+2].isdigit():
kwargs[u'body'][u'maximumNumberOfSeats'] = sys.argv[i+2] kwargs[u'body'][u'maximumNumberOfSeats'] = sys.argv[i+2]
i += 3
else:
i += 2
elif myarg in [u'plan']:
function = u'changePlan'
kwargs[u'body'] = {u'planName': sys.argv[i+1].upper()}
i += 2
while i < len(sys.argv):
planarg = sys.argv[i].lower()
if planarg == u'seats':
kwargs[u'body'][u'seats'] = {u'numberOfSeats': sys.argv[i+1]}
if len(sys.argv) > i + 2 and sys.argv[i+2].isdigit():
kwargs[u'body'][u'seats'][u'maximumNumberOfSeats'] = sys.argv[i+2]
i += 3
else:
i += 2
elif planarg in [u'purchaseorderid', u'po']:
kwargs[u'body'][u'purchaseOrderId'] = sys.argv[i+1]
i += 2
elif planarg in [u'dealcode', u'deal']:
kwargs[u'body'][u'dealCode']
i += 2 i += 2
else: else:
i += 1 print u'ERROR: %s is not a valid argument to "gam update resoldcustomer plan"' % planarg
result = callGAPI(res.subscriptions(), function, customerId=customer_id, subscriptionId=subscriptionId, **kwargs) sys.exit(3)
print u'Updated %s SKU %s subscription:' % (customer_id, sku) else:
print u'ERROR: %s is not a valid argument to "gam <users> update resoldsubscription"' % myarg
result = callGAPI(res.subscriptions(), function, customerId=customerId, subscriptionId=subscriptionId, **kwargs)
print u'Updated %s SKU %s subscription:' % (customerId, sku)
if result:
print_json(None, result) print_json(None, result)
def doGetResoldSubscriptions(): def doGetResoldSubscriptions():
res = buildGAPIObject(u'reseller') res = buildGAPIObject(u'reseller')
customer_id = sys.argv[3] customerId = sys.argv[3]
customerAuthToken = None customerAuthToken = None
i = 4 i = 4
while i < len(sys.argv): while i < len(sys.argv):
if sys.argv[i].lower() in [u'customer_auth_token', u'transfer_token']: myarg = sys.argv[i].lower().replace(u'_', u'')
if myarg in [u'customer_auth_token', u'transfer_token']:
customerAuthToken = sys.argv[i+1] customerAuthToken = sys.argv[i+1]
i += 2 i += 2
else: else:
print u'ERROR: %s is not a valid argument.' print u'ERROR: %s is not a valid argument for "gam show resoldsubscriptions"' % myarg
sys.exit(3) sys.exit(3)
result = callGAPI(res.subscriptions(), u'list', customerId=customer_id, customerAuthToken=customerAuthToken) result = callGAPI(res.subscriptions(), u'list', customerId=customerId, customerAuthToken=customerAuthToken)
print_json(None, result) print_json(None, result)
def _getResoldSubscriptionAttr(arg, customer_id): def _getResoldSubscriptionAttr(arg, customerId):
body = {u'plan': {}, body = {u'plan': {},
u'seats': {}, u'seats': {},
u'customerId': customer_id} u'customerId': customerId}
customerAuthToken = None customerAuthToken = None
i = 0 i = 0
while i < len(arg): while i < len(arg):
myarg = arg[i].lower() myarg = arg[i].lower().replace(u'_', u'')
if myarg in [u'deal', u'dealcode']: if myarg in [u'deal', u'dealcode']:
body[u'dealCode'] = arg[i+1] body[u'dealCode'] = arg[i+1]
elif myarg in [u'plan', u'planname']: elif myarg in [u'plan', u'planname']:
@ -7371,18 +7397,22 @@ def _getResoldSubscriptionAttr(arg, customer_id):
body[u'purchaseOrderId'] = arg[i+1] body[u'purchaseOrderId'] = arg[i+1]
elif myarg in [u'seats']: elif myarg in [u'seats']:
body[u'seats'][u'numberOfSeats'] = arg[i+1] body[u'seats'][u'numberOfSeats'] = arg[i+1]
body[u'seats'][u'maximumNumberOfSeats'] = arg[i+1] if len(arg) > i + 1 and arg[i+2].isdigit():
body[u'seats'][u'maximumNumberOfSeats'] = arg[i+2]
elif myarg in [u'sku', u'skuid']: elif myarg in [u'sku', u'skuid']:
_, body[u'skuId'] = getProductAndSKU(arg[i+1]) _, body[u'skuId'] = getProductAndSKU(arg[i+1])
elif myarg in [u'customer_auth_token', u'transfer_token']: elif myarg in [u'customerauthtoken', u'transfertoken']:
customerAuthToken = arg[i+1] customerAuthToken = arg[i+1]
else:
print u'ERROR: %s is not a valid argument for "gam create resoldsubscription"' % myarg
sys.exit(3)
i += 2 i += 2
return customerAuthToken, body return customerAuthToken, body
def doGetResoldCustomer(): def doGetResoldCustomer():
res = buildGAPIObject(u'reseller') res = buildGAPIObject(u'reseller')
customer_id = sys.argv[3] customerId = sys.argv[3]
result = callGAPI(res.customers(), u'get', customerId=customer_id) result = callGAPI(res.customers(), u'get', customerId=customerId)
print_json(None, result) print_json(None, result)
def _getResoldCustomerAttr(arg): def _getResoldCustomerAttr(arg):
@ -7390,7 +7420,7 @@ def _getResoldCustomerAttr(arg):
customerAuthToken = None customerAuthToken = None
i = 0 i = 0
while i < len(arg): while i < len(arg):
myarg = arg[i].lower() myarg = arg[i].lower().replace(u'_', u'')
if myarg in [u'email', u'alternateemail']: if myarg in [u'email', u'alternateemail']:
body[u'alternateEmail'] = arg[i+1] body[u'alternateEmail'] = arg[i+1]
elif myarg in [u'phone', u'phonenumber']: elif myarg in [u'phone', u'phonenumber']:
@ -7413,7 +7443,7 @@ def _getResoldCustomerAttr(arg):
body[u'postalAddress'][u'postalCode'] = arg[i+1] body[u'postalAddress'][u'postalCode'] = arg[i+1]
elif myarg in [u'region', u'state']: elif myarg in [u'region', u'state']:
body[u'postalAddress'][u'region'] = arg[i+1] body[u'postalAddress'][u'region'] = arg[i+1]
elif myarg in [u'customer_auth_token', u'transfer_token']: elif myarg in [u'customerauthtoken', u'transfertoken']:
customerAuthToken = arg[i+1] customerAuthToken = arg[i+1]
else: else:
print u'ERROR: %s is not a valid argument for resoldcustomer' % myarg print u'ERROR: %s is not a valid argument for resoldcustomer' % myarg
@ -7425,10 +7455,10 @@ def _getResoldCustomerAttr(arg):
def doUpdateResoldCustomer(): def doUpdateResoldCustomer():
res = buildGAPIObject(u'reseller') res = buildGAPIObject(u'reseller')
customer_id = sys.argv[3] customerId = sys.argv[3]
customerAuthToken, body = _getResoldCustomerAttr(sys.argv[4:]) customerAuthToken, body = _getResoldCustomerAttr(sys.argv[4:])
callGAPI(res.customers(), u'patch', customerId=customer_id, body=body, customerAuthToken=customerAuthToken, fields=u'customerId') callGAPI(res.customers(), u'patch', customerId=customerId, body=body, customerAuthToken=customerAuthToken, fields=u'customerId')
print u'updated customer %s' % customer_id print u'updated customer %s' % customerId
def doCreateResoldCustomer(): def doCreateResoldCustomer():
res = buildGAPIObject(u'reseller') res = buildGAPIObject(u'reseller')