Example #1
0
File: user.py Project: yola/yolapy
    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
Example #2
0
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
Example #3
0
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
Example #4
0
    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']]
Example #5
0
 def __init__(self):
     self.client = Yola()
     self._partner = None
Example #6
0
 def setUpClass(cls):
     cls.service = Yola()
Example #7
0
 def __init__(self, **fields):
     self.client = Yola()
     for field_name in self._fields:
         setattr(self, field_name, fields.get(field_name))
Example #8
0
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`.'
Example #9
0
 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]
Example #10
0
 def get(cls, id):
     """Get a SiteImport from the Yola API"""
     return cls(**Yola().get_site_import(id))
Example #11
0
 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))
Example #12
0
File: user.py Project: yola/yolapy
 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)
Example #13
0
File: user.py Project: yola/yolapy
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)
Example #14
0
 def get(cls, site_id):
     """Get a site from the Yola API."""
     site_attributes = Yola().get_site(site_id)
     return cls(**site_attributes)
Example #15
0
File: user.py Project: yola/yolapy
 def get_client(cls):
     if not cls._client:
         cls._client = Yola()
     return cls._client
Example #16
0
 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]
Example #17
0
 def __init__(self):
     self.client = Yola()
     self._partner = None