Beispiel #1
0
    def post(request):
        try:
            phone = request.data['phone']
            password = request.data['password']
        except KeyError:
            return error_request(ErrBaseParams)

        if not is_phone(phone):
            return error_request(ErrBaseParams)

        if not is_password(password):
            return error_request(ErrBaseParams)

        user = Profile.objects.filter(phone=phone).first()

        if not user:
            return error_request(ErrUserDoesNotExist)

        if not check_password(password, user.password):
            return error_request(ErrUserPasswordIncorrect)

        return_data = dict_success()
        return_data['msg'] = '登录成功'
        return_data['data'] = serializer_data(user, ProfileSerializer, request)
        return_data['data']['token'] = jwt_encode_handler(
            jwt_payload_handler(user))
        return success_request(return_data)
Beispiel #2
0
    def get(request):
        user = Profile.objects.filter(username=request.user).first()

        if not user:
            return error_request(ErrUserDoesNotExist)

        return_data = dict_success()
        return_data['data'] = serializer_data(user, ProfileSerializer, request)
        return success_request(return_data)
Beispiel #3
0
    def get(request):
        banner_list = Banner.objects.all()
        topic_list = Topic.objects.all()

        if not banner_list and not topic_list:
            return error_request(ErrBaseNotData)

        return_data = dict_success()
        return_data['data']['banner'] = serializer_list_data(
            banner_list, BannerSerializer, request)
        return_data['data']['topic'] = serializer_list_data(
            topic_list, TopicSerializer, request)
        return success_request(return_data)
Beispiel #4
0
    def get(self, request):
        try:
            msg_id = request.query_params['msg_id']
        except KeyError:
            return error_request(ErrBaseParams)

        msg = Msg.objects.filter(pk=msg_id).first()

        if not msg:
            return error_request(ErrBaseNotData)

        if self.check_object_permissions(request, msg_id):
            return error_request(ErrBaseIllegalPermission)

        return_data = dict_success()
        return_data['data'] = MsgSerializer(msg).data
        return success_request(return_data)
Beispiel #5
0
    def post(request):
        try:
            # get
            platform = request.query_params['platform']
            device_id = request.query_params['device_id']

            # post
            phone = request.data['phone']
            password = request.data['password']
            code = request.data['code']
        except KeyError:
            return error_request(ErrBaseParams)

        if not is_phone(phone):
            return error_request(ErrBaseParams)

        if not is_password(password):
            return error_request(ErrBaseParams)

        if not is_code(code):
            return error_request(ErrBaseParams)

        exists = Profile.objects.filter(phone=phone).exists()

        if exists:
            return error_request(ErrUserDoesExist)

        user = Profile.objects.create(
            uid=gen_uid(),
            phone=phone,
            password=make_password(password),
            platform=platform,
            username='******' + phone,
            register_ip=gen_ip(request),
            device_id=device_id,
        )

        Balance.objects.create(user=user, )

        return_data = dict_success()
        return_data['msg'] = '注册成功'
        return_data['data'] = serializer_data(user, ProfileSerializer, request)
        return_data['data']['token'] = jwt_encode_handler(
            jwt_payload_handler(user))
        return success_request(return_data)
Beispiel #6
0
    def get(request):
        try:
            goods_id = request.query_params['goods_id']
        except KeyError:
            return error_request(ErrBaseParams)

        goods = Goods.objects.filter(goods_id=goods_id).first()

        if not goods:
            return error_request(ErrBaseNotData)

        goods_image_list = GoodsImage.objects.filter(goods_id=goods.id).all()
        return_data = dict_success()
        return_data['data'] = serializer_data(goods, GoodsDetailSerializer,
                                              request)
        return_data['data']['goods_images'] = serializer_list_data(
            goods_image_list, GoodsImageSerializer, request)
        return success_request(return_data)
Beispiel #7
0
    def post(self, request):
        try:

            # get
            platform = request.query_params['platform']
            device_id = request.query_params['device_id']

            # post
            gender = request.data['gender']
            oauth_from = request.data['oauth_from']
            oauth_openid = request.data['open_id']
            access_token = request.data['token']
            nick = request.data['nick']
            avatar = request.data['avatar']

            gender = int(gender)

        except KeyError:
            return error_request(ErrBaseParams)
        except ValueError:
            return error_request(ErrBaseParams)

        is_in_login_zone, return_data = self.check_in_login_zone(oauth_from)
        if not is_in_login_zone:
            return return_data

        is_valid, oauth_userinfo = self.validate_and_get_userinfo(
            oauth_from, access_token, oauth_openid)

        if not is_valid:
            return error_request(ErrUserNotAccessTheValidate)

        user = Profile.objects.filter(oauth_openid=oauth_openid).first()
        if user:
            return_data = dict_success()
            return_data['msg'] = '登录成功'
            return_data['data'] = serializer_data(user, ProfileSerializer,
                                                  request)
            return_data['data']['token'] = jwt_encode_handler(
                jwt_payload_handler(user))
            return success_request(return_data)

        user = Profile.objects.create(uid=gen_uid(),
                                      username=self.username,
                                      nick=self.clear_nick(nick),
                                      register_ip=gen_ip(request),
                                      device_id=device_id,
                                      platform=platform,
                                      avatar=avatar,
                                      gender=gender,
                                      oauth_openid=oauth_openid,
                                      oauth_from=oauth_from,
                                      oauth_userinfo=oauth_userinfo,
                                      oauth_time=datetime.now())
        Balance.objects.create(user=user, )
        return_data = dict_success()
        return_data['msg'] = '登录成功'
        return_data['data'] = serializer_data(user, ProfileSerializer, request)
        return_data['data']['token'] = jwt_encode_handler(
            jwt_payload_handler(user))
        return success_request(return_data)