Subversion Repositories SmartDukaan

Rev

Rev 130 | Rev 504 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

from shop2020.thriftpy.model.v1.user.ttypes import Address as TAddress,\
    UserContext as TUserContext, Phone as TPhone, SocialHandles as TSocialHandles,\
    UserState as TUserState, UserPrimaryInfo as TUserPrimaryInfo
from shop2020.model.v1.user.impl.Dataservice import Address
from shop2020.utils.Utils import to_java_date

def to_t_address(address):
    t_address = TAddress()
    t_address.id = address.id
    t_address.line1 = address.line_1
    t_address.line2 = address.line_2
    t_address.landmark = address.landmark
    t_address.city = address.city
    t_address.state = address.state
    t_address.pin = address.pin
    t_address.country = address.country
    t_address.enabled = address.enabled
    t_address.type = address.type
    t_address.addedOn = to_java_date(address.added_on)
    t_address.name = address.name
    t_address.phone = address.phone
    return t_address
    
    
def to_t_user_context(user_context):
    t_user_context = TUserContext()
    t_user_context.id = user_context.id
    t_user_context.sessionid = user_context.session_id
    t_user_context.primaryInfo = to_t_primary_info(user_context.primary_info)
    t_user_context.internalInfo = to_t_internal_info(user_context.internal_info)
    t_user_context.userState = to_t_user_state(user_context.state)
    return t_user_context
    

def to_t_primary_info(primary_info):
    t_primary_info = TUserPrimaryInfo()
    t_primary_info.userId = primary_info.user.id
    t_primary_info.title = primary_info.title
    t_primary_info.firstName = primary_info.first_name
    t_primary_info.middleName = primary_info.middle_name
    t_primary_info.lastName = primary_info.last_name
    t_primary_info.pictureUrl = primary_info.picture_id
    t_primary_info.email = primary_info.email
    t_primary_info.userHandle = primary_info.user_handle
    t_primary_info.socialHandles = to_t_social_handle(primary_info.social_handles)
    t_primary_info.shipmentOption = primary_info.shipment_option 
    t_primary_info.occupation = primary_info.occupation
    t_primary_info.hintQuestion = primary_info.hint_question
    t_primary_info.hintAnswer = primary_info.hint_answer
    
    #put all addresses
    if primary_info.addresses:
        t_primary_info.addresses = set()
        for address in primary_info.addresses:
            t_primary_info.addresses.add(to_t_address(address))
    return t_primary_info  
        
    pass

def to_t_internal_info(internal_info):
    pass

def to_t_user_state(user_state):
    t_user_state = TUserState()
    t_user_state.userId = user_state.user.id
    t_user_state.isEmailVerified = user_state.is_email_verified
    t_user_state.lastLogin = to_java_date(user_state.last_login_timestamp)
    t_user_state.lastLogout = to_java_date(user_state.last_logout)
    t_user_state.emailVerificationSentOn = to_java_date(user_state.email_verification_sent_on)
    t_user_state.smsVerificationSentOn = to_java_date(user_state.sms_verification_sent_on)
    t_user_state.isSMSVerified = user_state.is_sms_verified
    t_user_state.activeSince = to_java_date(user_state.active_since)
    t_user_state.isLoggedIn = user_state.is_logged_in
    t_user_state.shoppingCartHandle = user_state.current_shopping_cart
    t_user_state.status = user_state.account_status
    return t_user_state    

def to_t_phone(phone):
    t_phone = TPhone()
    t_phone.areaCode = phone.area_code
    t_phone.countryCode = phone.country_code
    t_phone.extension = phone.extension
    t_phone.number = phone.number
    t_phone.type = phone.type
    return t_phone

def to_t_social_handle(social_handles):
    t_socialHandle = TSocialHandles()
    for social_handle in social_handles:
        if social_handle.service.name == "Facebook":
            t_socialHandle.facebook = social_handle.handle
        if social_handle.service.name == "OpenSocial":
            t_socialHandle.opensocial = social_handle.handle
        if social_handle.service.name == "Twitter":
            t_socialHandle.twitter = social_handle.handle
    return t_socialHandle