Пример #1
0
def get_region(region_id=None):
    if region_id:
        data = {"region_id": int(region_id)}
        region_list = request_api(SERVICE_SYSTEM_REGION_ALL_URL,
                                  'POST',
                                  content=data)
    else:
        region_list = request_api(SERVICE_SYSTEM_REGION_ALL_URL, 'POST')
    return region_list
Пример #2
0
def get_province(province_id=None, has_project=False):
    if has_project:
        province_list = request_api(SERVICE_UNIPRIME_PROVINCE_FILTER, 'GET')
    else:
        data = {}
        if province_id:
            data["province_id"] = province_id

        province_list = request_api(SERVICE_SYSTEM_PROVINCE_ALL_URL,
                                    'POST',
                                    content=data)

    return province_list
Пример #3
0
def get_district(province_id, district_id=None, has_project=False):
    if has_project:
        district_list = request_api(SERVICE_UNIPRIME_DISTRICT_FILTER,
                                    'GET',
                                    params={"province_id": province_id})
    else:
        data = {"province_id": province_id}
        if district_id:
            data["district_id"] = district_id

        district_list = request_api(SERVICE_SYSTEM_DISTRICT_FROM_PROVINCE_URL,
                                    'POST',
                                    content=data)

    return district_list
Пример #4
0
def find_province(province_id):
    response = request_api(SERVICE_SYSTEM_FIND_PROVINCE,
                           'POST',
                           content={"province_id": province_id})
    try:
        return json.loads(response)["data"]
    except:
        return ""
Пример #5
0
def get_ward(district_id=None, ward_id=None, has_project=False):
    if has_project:
        ward_list = request_api(SERVICE_UNIPRIME_WARD_FILTER,
                                'GET',
                                params={"district_id": district_id})
    else:
        data = {}
        if district_id:
            data["district_id"] = district_id
        if ward_id:
            data['ward_id'] = ward_id

        ward_list = request_api(SERVICE_SYSTEM_WARD_FROM_DISTRICT_URL,
                                'POST',
                                content=data)

    return ward_list
Пример #6
0
def find_district(district_id):
    response = request_api(SERVICE_SYSTEM_FIND_DISTRICT,
                           'POST',
                           content={"district_id": district_id})
    try:
        return json.loads(response)["data"]
    except:
        return ""
Пример #7
0
def find_ward(ward_id):
    response = request_api(SERVICE_SYSTEM_FIND_WARD,
                           'POST',
                           content={"ward_id": ward_id})
    try:
        return json.loads(response)["data"]
    except:
        return ""
Пример #8
0
def get_district_name(district_id):
    response = request_api(SERVICE_SYSTEM_FIND_DISTRICT,
                           'POST',
                           content={"district_id": [district_id]})
    try:
        province_dict = json.loads(response)["data"][0]
        return province_dict.get('name')
    except:
        return ""
Пример #9
0
def get_province_name(province_id):
    response = request_api(SERVICE_SYSTEM_FIND_PROVINCE,
                           'POST',
                           content={"province_id": [province_id]})
    try:
        province_dict = json.loads(response)["data"][0]
        return province_dict.get('name')
    except:
        return ""
Пример #10
0
def get_country_name(country_id):
    response = request_api(SERVICE_SYSTEM_FIND_COUNTRY,
                           'POST',
                           content={"country_id": [country_id]})
    try:
        province_dict = json.loads(response)["data"][0]
        return province_dict.get('name')
    except:
        return ""
Пример #11
0
def get_ward_name(ward_id):
    response = request_api(SERVICE_SYSTEM_FIND_WARD,
                           'POST',
                           content={"ward_id": ward_id})
    try:
        province_dict = json.loads(response)["data"][0]
        return province_dict.get('name')
    except:
        return ""
Пример #12
0
def get_currency_rate_from_vcb_vnd(target_currency):
    if target_currency:
        response = request_api(url=SERVICE_SYSTEM_SEARCH_CURRECY_RATE,
                               method='GET',
                               params={"base": target_currency})

        if response:
            data = json.loads(response)
            if data['success']:
                data = data['data']
                return data

    return None
Пример #13
0
def get_dict_ward(list_ward):
    try:
        list_ward = json.loads(
            request_api(url=SERVICE_SYSTEM_FIND_WARD,
                        method="POST",
                        content={"ward_id": list_ward}))['data']
    except:
        list_ward = list()

    dict_ward = dict()
    for ward in list_ward:
        dict_ward.update({ward['ward_id']: ward['name']})

    return dict_ward
Пример #14
0
def get_dict_province(list_province):
    try:
        list_province = json.loads(
            request_api(url=SERVICE_SYSTEM_FIND_PROVINCE,
                        method="POST",
                        content={"province_id": list_province}))['data']
    except:
        list_province = list()

    dict_province = dict()
    for province in list_province:
        dict_province.update({province['province_id']: province['name']})

    return dict_province
Пример #15
0
def get_dict_district(list_district):
    try:
        list_district = json.loads(
            request_api(url=SERVICE_SYSTEM_FIND_DISTRICT,
                        method="POST",
                        content={"district_id": list_district}))['data']
    except:
        list_district = list()

    dict_district = dict()
    for district in list_district:
        dict_district.update({district['district_id']: district['name']})

    return dict_district
Пример #16
0
def get_location_point_from_address(address):
    if address:
        response = request_api(url=SERVICE_SYSTEM_SEARCH_ALL,
                               method='post',
                               content={'Keyword': address})

        if response:
            data = json.loads(response)

            if data['success'] and data['total_count'] >= 1:
                point_data = data['data'][0]

                if point_data:
                    return {
                        'lat': point_data['Latitude'],
                        'lon': point_data['Longitude']
                    }

    return None
Пример #17
0
def send_email_reset_password(request, type_reset_pass, email=None, customer_or_banking_user_id=None):
    if type_reset_pass == RESET_PASSWORD_TYPE_SELF:
        if email is None:
            return {
                'success': False,
                'detail': 'email must be passed in when seft reset password'
            }

        if not isinstance(email, str):
            return {
                'success': False,
                'detail': 'email must be a string'
            }

        email = email.lower()

        if re.match('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$', email) is None:
            return {
                'success': False,
                'detail': 'email is not valid'
            }

        # TODO: đợt chốt và thêm SERVICE_UNIPRIME_FORGOT_PASSWORD bên uniprime mobile
        try:
            response_forgot_password_uniprime = json.loads(request_api(
                url=SERVICE_UNIPRIME_FORGOT_PASSWORD,
                method='POST',
                content={'email': email},
                headers=HEADER_UNIPRIME
            ))
            if response_forgot_password_uniprime['success']:
                return {
                    'success': True,
                    'detail': 'send email reset password success'
                }

        except:
            return {
                'success': False,
                'detail': 'call to uniprime api error'
            }

    elif type_reset_pass == RESET_PASSWORD_TYPE_CUSTOMER or type_reset_pass == RESET_PASSWORD_TYPE_BANKING_USER:
        if customer_or_banking_user_id is None:
            return {
                'success': False,
                'detail': 'customer_or_banking_user_id must be passed in when reset password customer'
            }

        if not isinstance(customer_or_banking_user_id, int):
            return {
                'success': False,
                'detail': 'customer_or_banking_user_id must be an integer'
            }

        if type_reset_pass == RESET_PASSWORD_TYPE_CUSTOMER:
            model = Customer
        else:
            model = BankingUser

        try:
            customer_or_banking_user = model.objects.get(id=customer_or_banking_user_id)
        except model.DoesNotExist as ex:
            return {
                'success': False,
                'detail': str(ex)
            }

        if customer_or_banking_user.username is None:
            return {
                'success': False,
                'detail': 'customer_or_banking_user_id does not have account before'
            }

        if type_reset_pass == RESET_PASSWORD_TYPE_CUSTOMER:
            nick_name = customer_or_banking_user.name
        else:
            nick_name = customer_or_banking_user.full_name

        if nick_name is None or nick_name == '':
            nick_name = 'user'

        email = customer_or_banking_user.email
        key_reset_pass = customer_or_banking_user.reset_key_reset_password(now())

        host_url = request.build_absolute_uri(reverse('reset_pass', kwargs={'key': key_reset_pass}))
        html_message = '<p>Dear ' + nick_name + ',</p>' \
                                                '<p>&nbsp;</p>' \
                                                '<p>We have received your request to reset your password.</p>' \
                                                '<p>Please click on the link below to get you in the door:</p>' \
                                                '<p>Link <a href="' + host_url + '">' + host_url + '</a></p>' \
                                                                                                   "<p>Don't leave it to late through, this link is only available for 24 hours.</p>" \
                                                                                                   '<p>&nbsp;</p>' \
                                                                                                   '<p>Thanks,</p>' \
                                                                                                   '<p>Admin Team</p>'
        try:
            send_mail(
                'Reset your password',
                '',
                'EMAIL_HOST_STRING',
                [email],
                html_message=html_message
            )

            return {
                'success': True,
                'detail': 'send email reset password success'
            }
        except Exception:
            return {
                'success': False,
                'detail': 'send email reset password fail',
            }

    else:
        return {
            'success': False,
            'detail': 'type_reset_pass is not valid',
        }
Пример #18
0
def get_country():
    countries = request_api(SERVICE_SYSTEM_COUNTRIES_ALL_URL, 'POST')
    return countries