Source code for route4me.members

# -*- coding: utf-8 -*-

import json

from .api_endpoints import (
    MEMBER_AUTHENTICATE,
    USER_LICENSE_HOST,
    VALIDATE_SESSION,
    WEBINAR_REGISTER,
    VERIFY_DEVICE_LICENSE,
    GET_USERS_HOST,
    USER_URL,
    REGISTER_ACTION
)
from .base import Base
from .exceptions import ParamValueException


[docs]class Members(Base): """ Members management. """
[docs] def __init__(self, api): """ Members Instance :param api: :return: """ Base.__init__(self, api)
[docs] def app_purchase_user_license(self, **kwargs): """ Application purchase user License :param kwargs: :return: API response content """ if self.check_required_params(kwargs, ['member_id', 'session_guid', 'device_id', 'device_type', 'subscription_name', 'token', 'payload', 'format', ]): data = json.dumps(kwargs, ensure_ascii=False) response = self.api._request_post(USER_LICENSE_HOST, self.params, data=data) try: return json.loads(response.content) except ValueError: return response.content else: raise ParamValueException('order', 'Missing required params')
[docs] def verify_device_license(self, **kwargs): """ Verify User License :param kwargs: :return: API response content """ if self.check_required_params(kwargs, ['device_id', 'device_type', 'format', ]): data = json.dumps(kwargs, ensure_ascii=False) response = self.api._request_post(VERIFY_DEVICE_LICENSE, self.params, data=data) try: return json.loads(response.content) except ValueError: return response.content else: raise ParamValueException('order', 'Missing required params')
[docs] def member_authenticate(self, **kwargs): """ Member Authenticate :param kwargs: :return: API response content """ if self.check_required_params(kwargs, ['email', 'password', ]): kwargs['strEmail'] = kwargs.pop('email') kwargs['strPassword'] = kwargs.pop('password') response = self.api._request_post(MEMBER_AUTHENTICATE, self.params, data=kwargs) try: return json.loads(response.content) except ValueError: return response.content else: raise ParamValueException('order', 'Missing required params')
[docs] def get_users(self, **kwargs): """ Get users using GET request :return: API response """ kwargs.update({'api_key': self.params['api_key'], }) response = self.api._request_get(GET_USERS_HOST, kwargs) try: return response.json() except ValueError: return response.content
[docs] def get_api_key_users(self, **kwargs): """ Get users taht belong to a given api_key using GET request :return: API response """ kwargs.update({'api_key': self.params['api_key'], }) response = self.api._request_get(USER_URL, kwargs) try: return response.json() except ValueError: return response.content
[docs] def validate_session(self, **kwargs): """ Validate Session :param kwargs: :return: API response content """ kwargs.update({'api_key': self.params['api_key'], }) if self.check_required_params(kwargs, ['session_guid', 'member_id', ]): response = self.api._request_get(VALIDATE_SESSION, kwargs) try: return json.loads(response.content) except ValueError: return response.content else: raise ParamValueException('order', 'Missing required params')
[docs] def webinar_registration(self, **kwargs): """ Webinar Register :param kwargs: :return: API response content """ if self.check_required_params(kwargs, ["email_address", "first_name", "last_name", "phone_number", "company_name", "member_id", "webiinar_date"]): response = self.api._request_post(WEBINAR_REGISTER, self.params, data=kwargs) try: return json.loads(response.content) except ValueError: return response.content else: raise ParamValueException('order', 'Missing required params')
[docs] def register(self, **kwargs): """ Register Action :param kwargs: :return: API response content """ if self.check_required_params(kwargs, ["industry", "first_name", "last_name", "email_address", "check_terms", "device_type", "plan", "password_1", "password_2", "format"]): params = {'plan': kwargs.pop('plan')} kwargs['strIndustry'] = kwargs.pop('industry') kwargs['strFirstName'] = kwargs.pop('first_name') kwargs['strLastName'] = kwargs.pop('last_name') kwargs['strEmail'] = kwargs.pop('email_address') kwargs['chkTerms'] = kwargs.pop('check_terms') kwargs['device_type'] = kwargs.pop('device_type') kwargs['strPassword_1'] = kwargs.pop('password_1') kwargs['strPassword_2'] = kwargs.pop('password_2') response = self.api._request_post(REGISTER_ACTION, params, data=kwargs) try: return response.json() except ValueError: return response.content else: raise ParamValueException('order', 'Missing required params')