legacy/adobe_tools/adobe_tools.py (60 lines of code) (raw):
#!/usr/bin/python
# Copyright (c) Facebook, Inc. and its affiliates.
"""Adobe API tools."""
import adobe_api
# These are the most common actions that one would use the Adobe UM API for.
def user_exists(username):
"""Return True if the username exists, or False if it doesn't."""
try:
adobe_api.AdobeAPIObject(username)
except adobe_api.AdobeAPINoUserException:
return False
return True
def user_is_federated(username):
"""
Return if the username exists and is federated.
If the username does not exist, the result will be False.
"""
try:
instance = adobe_api.AdobeAPIObject(username)
except adobe_api.AdobeAPINoUserException:
return False
return instance.is_federated()
def does_user_have_product(product, username):
"""Return True/False if a user has the specified product."""
try:
instance = adobe_api.AdobeAPIObject(username)
except adobe_api.AdobeAPINoUserException:
return False
return instance.has_product(product)
def list_user_products(username):
"""Return a list of the user's product configs."""
instance = adobe_api.AdobeAPIObject(username)
return instance.list_products()
def does_product_exist(productname):
"""Return True if a product config exists."""
instance = adobe_api.AdobeAPIObject(
"fake@fake.com",
allow_nonexistent_user=True
)
return instance.product_exists(productname)
def get_product_list():
"""Return a list of product configs available."""
instance = adobe_api.AdobeAPIObject(
"fake@fake.com",
allow_nonexistent_user=True
)
productlist = instance.gather_product_list()
return [x['groupName'] for x in productlist]
def add_federated_user(username, email, firstname, lastname, country='US'):
"""Add federated user account."""
instance = adobe_api.AdobeAPIObject(
username,
allow_nonexistent_user=True
)
return instance.add_federated_user(email, country, firstname, lastname)
def remove_user(username):
"""Remove user account from organization."""
instance = adobe_api.AdobeAPIObject(username)
return instance.remove_user_from_org(username)
def add_products(desired_products, username):
"""Add products to specific user."""
instance = adobe_api.AdobeAPIObject(username)
return instance.add_products_to_user(desired_products)
def remove_products(removed_products, username):
"""Remove products from specific user."""
instance = adobe_api.AdobeAPIObject(username)
return instance.remove_product_from_user(removed_products)
def api_reachable():
"""Return True if the API is reachable."""
try:
adobe_api.AdobeAPIObject(
"fake@fake.com",
allow_nonexistent_user=True
)
except (adobe_api.AdobeAPIBadStatusException,
adobe_api.AdobeAPIMissingRequirementsException):
return False
return True