def post(self, request): serializer = AccountVerifySerializer(data=request.data) if not serializer.is_valid(): return BaseResponse.send_response(False, error_code.MISSING_REQUIRED_FIELD, error_message.MISSING_REQUIRED_FIELD, self.data_response, status.HTTP_200_OK) data = BaseRefiner.clean_data(serializer.data) token_all = AccountToken.objects.filter(valid_flg=True, type__exact=AccountToken.VERIFY_TOKEN) if token_all: for token in token_all: if token.token == data['token']: try: account = Account.objects.get(pk=token.account_id) account.active_flg = 1 account.verified_flg = True account.updated_date = datetime.now() access_token = TokenManager.generate_token(account, AccountToken.ACCESS_TOKEN) account.save() token.delete() self.data_response = AccountDetailSerializer(account).data self.data_response['id'] = account.id self.data_response['token'] = access_token.token self.data_response['expired'] = access_token.expired_date return BaseResponse.send_response(True, error_code.SUCCESSFUL, error_message.SUCCESSFUL, self.data_response, status.HTTP_200_OK) except: return BaseResponse.send_response(False, error_code.SERVER_ERROR, error_message.SERVER_ERROR, self.data_response, status.HTTP_200_OK) else: pass else: return BaseResponse.send_response(False, error_code.TOKEN_EMPTY_OR_INVALID, error_message.TOKEN_EMPTY_OR_INVALID, self.data_response, status.HTTP_200_OK)
def post(self, request): serializer = AccountRegSerializer(data=request.data) if not serializer.is_valid(): return BaseResponse.send_response(False, error_code.MISSING_REQUIRED_FIELD, error_message.MISSING_REQUIRED_FIELD, self.data_response, status.HTTP_200_OK) data = BaseRefiner.clean_data(serializer.data) accounts = Account.objects.filter(email=data['email']) if accounts: return BaseResponse.send_response(False, error_code.EMAIL_EXISTED, error_message.EMAIL_EXISTED, self.data_response, status.HTTP_200_OK) if not len(data['password']) == 32: return BaseResponse.send_response(False, error_code.PASSWORD_INVALID, error_message.PASSWORD_INVALID, self.data_response, status.HTTP_200_OK) if any(i.isdigit() for i in data['first_name']) or any(i.isdigit() for i in data['last_name']): return BaseResponse.send_response(False, error_code.NAME_FORMAT, error_message.NAME_FORMAT, self.data_response, status.HTTP_200_OK) try: validate_email(data['email']) except: return BaseResponse.send_response(False, error_code.EMAIL_INVALID, error_message.EMAIL_INVALID, self.data_response, status.HTTP_200_OK) account = Account.objects.create(email=data['email']) account.password = hashlib.md5(data['password']).hexdigest() account.first_name = data['first_name'] account.last_name = data['last_name'] account.created_date = datetime.now() account.updated_date = datetime.now() account.verified_flg = False account.active_flg = 0 account.save() token_verify = TokenManager.generate_token(account, AccountToken.VERIFY_TOKEN) # TODO: implement send verification mail print token_verify # end TODO self.data_response = { 'id': account.id, 'email': account.email, 'first_name': account.first_name, 'last_name': account.last_name } return BaseResponse.send_response(True, error_code.SUCCESSFUL, error_message.SUCCESSFUL, self.data_response, status.HTTP_200_OK)