def __init__(self, active=False, deleted=None, email=None, id=None, name=None, partner_id=None, preferences=None, signup_date=None, surname=None): """Construct a Yola User. The data in a User instance does not persist until it has been saved. :param active: Bool, toggled ``False`` when user is deactivated :param deleted: Timestamp, date the user was deleted :param email: Str, user's email address :param id: Str, user's 32 character ID :param name: Str, user's first name :param partner_id: Str, yola partner responsible the user :param preferences: Dict, user's preferences :param signup_date: Timestamp, date the user signed up :param surname: Str, user's second name :return: :class:`User <User>` object :rtype: yolapy.users.models.User """ self.client = Yola() self.partner_id = partner_id or self.client.username self.active = active self.deleted = deleted self.email = email self.id = id self.name = name self.preferences = preferences or {} self.signup_date = signup_date self.surname = surname
class Partner(object): """Yola Partner service model. Example use: ``` > from yolapy.models import Partner > Partner.me().available_subscription_types ["wl_lite", "wl_premium", "wl_basic", "wl_ecommerce_basic"] ``` """ def __init__(self): self.client = Yola() self._partner = None def fetch_partner_data(self, partner_id): self._partner = self.client.get_partner(partner_id) @property def available_subscription_types(self): properties = self._partner['properties'] return properties['available_subscription_types'] @classmethod def me(cls): partner = cls() partner_id = partner.client.username partner.fetch_partner_data(partner_id) return partner
def list(cls, **kwargs): """Return a filtered list of Subscriptions. Usage:: >>> from yolapy.models import Subscription >>> user_id = 'abcdef1234567890abcdef1234567890' >>> user_subs = Subscription.list(user_id=user_id) >>> print user_subs[0] <yolapy.models.subscription.Subscription object> >>> print user_subs[0].user_id u'abcdef1234567890abcdef1234567890' """ response = Yola().list_subscriptions(**kwargs) return [cls(**sub) for sub in response['results']]
def __init__(self): self.client = Yola() self._partner = None
def setUpClass(cls): cls.service = Yola()
def __init__(self, **fields): self.client = Yola() for field_name in self._fields: setattr(self, field_name, fields.get(field_name))
import os import sys sys.path.insert(0, os.path.dirname(__file__)) from yolapy.services import Yola from tests.test_integration.test_settings import auth, url yola = Yola(url=url, auth=auth) print 'The current directory has been added to the beginning of sys.path' print 'and the Yola service client has been instantiated as `yola`.'
def list(cls, **filters): """Get a list of SiteImports from the Yola API""" site_imports = PaginatedResults(Yola().list_site_imports, kwargs=filters) return [cls(**site_import) for site_import in site_imports]
def get(cls, id): """Get a SiteImport from the Yola API""" return cls(**Yola().get_site_import(id))
def create(cls, url, user_id): """Create a SiteImport with the Yola API""" return cls(**Yola().create_site_import(url=url, user_id=user_id))
def get(cls, user_id): """Get a user from the Yola API.""" user_attributes = Yola().get_user(user_id) user_attributes['signup_date'] = user_attributes.pop('signupDate') return cls(**user_attributes)
class User(object): """Yola User - a service model that uses the yola client for persistence. Example use: ``` from yolapy.models import User as YolaUser yola_user = YolaUser( email='*****@*****.**', name='Jane', surname='Doe', partner_id='WL_PARTNER', preferences={'locale': 'en'}) yola_user.save() ``` """ def __init__(self, active=False, deleted=None, email=None, id=None, name=None, partner_id=None, preferences=None, signup_date=None, surname=None): """Construct a Yola User. The data in a User instance does not persist until it has been saved. :param active: Bool, toggled ``False`` when user is deactivated :param deleted: Timestamp, date the user was deleted :param email: Str, user's email address :param id: Str, user's 32 character ID :param name: Str, user's first name :param partner_id: Str, yola partner responsible the user :param preferences: Dict, user's preferences :param signup_date: Timestamp, date the user signed up :param surname: Str, user's second name :return: :class:`User <User>` object :rtype: yolapy.users.models.User """ self.client = Yola() self.partner_id = partner_id or self.client.username self.active = active self.deleted = deleted self.email = email self.id = id self.name = name self.preferences = preferences or {} self.signup_date = signup_date self.surname = surname @classmethod def get(cls, user_id): """Get a user from the Yola API.""" user_attributes = Yola().get_user(user_id) user_attributes['signup_date'] = user_attributes.pop('signupDate') return cls(**user_attributes) def _save_create(self): user = self.client.create_user( email=self.email, name=self.name, partner_id=self.partner_id, preferences=self.preferences, surname=self.surname) self.update(**user) def _save_update(self): raise NotImplementedError() def save(self): """POST the user data back to the service.""" if self.id: self._save_update() else: self._save_create() def update(self, **attributes): """Update all keyword arguments to update instance attributes.""" for attr, val in attributes.items(): setattr(self, attr, val)
def get(cls, site_id): """Get a site from the Yola API.""" site_attributes = Yola().get_site(site_id) return cls(**site_attributes)
def get_client(cls): if not cls._client: cls._client = Yola() return cls._client
def list(cls, **filters): """Get a list of sites from the Yola API.""" sites = PaginatedResults(Yola().list_sites, kwargs=filters) return [Site(**s) for s in sites]