Subversion Repositories SmartDukaan

Rev

Rev 643 | Rev 1603 | 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,\
    Phone as TPhone, SocialHandles as TSocialHandles,\
    UserState as TUserState, User as TUser, Cart as TCart, Line as TLine, Sex as TSex
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(user):
    t_user = TUser()
    if user is None:
        t_user.userId = -1
        return t_user
    
    t_user.userId = user.id
    t_user.name = user.name
    t_user.email = user.email
    t_user.password = user.password
    t_user.sex = user.sex

    t_user.socialHandles = to_t_social_handle(user.social_handles)
    t_user.communicationEmail = user.communication_email
    t_user.defaultAddressId = user.default_address_id
    t_user.isAnonymous = user.is_anonymous
    t_user.activeCartId = user.active_cart_id
    t_user.dateOfBirth = user.date_of_birth
    t_user.mobileNumber = user.mobile_number
    #put all addresses
    if user.addresses:
        t_user.addresses = list()
        for address in user.addresses:
            t_user.addresses.append(to_t_address(address))
    return t_user

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.lastLogin = to_java_date(user_state.last_login)
    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.isEmailVerified = user_state.is_email_verified
    t_user_state.isSMSVerified = user_state.is_sms_verified
    t_user_state.activeSince = to_java_date(user_state.active_since)
    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

def to_t_cart(cart):
    t_cart = TCart()
    if cart:
        t_cart.id = cart.id
        t_cart.status = cart.cart_status
        lines = []
        if cart.lines:
            for line in cart.lines:
                lines.append(to_t_line(line))
        t_cart.lines = lines
        t_cart.createdOn = to_java_date(cart.created_on)
        t_cart.updatedOn = to_java_date(cart.updated_on)
        t_cart.userId = cart.user_id
        t_cart.addressId = cart.address_id
        t_cart.checkedOutOn = to_java_date(cart.checked_out_on)
    return t_cart
    
def to_t_line(line):
    t_line = TLine()
    if line:
        t_line.cartId = line.cart_id
        t_line.itemId = line.item_id
        t_line.quantity = line.quantity
        t_line.estimate = line.estimate
        t_line.createdOn = to_java_date(line.created_on)
        t_line.updatedOn = to_java_date(line.updated_on)
        t_line.lineStatus = line.line_status
    return t_line