def create(self, request, *args, **kwargs): logger.info("TRY CREATE CHATBOT ||" + create_log_content(request)) # Django 에서는 request의 body로 들어온 정보를 변환하지 못하도록 막았기 때문에 이를 풀어줌 mutable = request.POST._mutable request.POST._mutable = True chat_log_data = request.data now_date_time = datetime.now() # 필드 중 생성 날짜. 시간들에 대한 정보를 클라이언트가 아닌 서버에서 생성 create_date_time = "%04d%02d%02d%02d%02d%02d" % ( now_date_time.year, now_date_time.month, now_date_time.day, now_date_time.hour, now_date_time.minute, now_date_time.second ) # 20191123 => 2019년 11월 23 create_date = create_date_time[:8] # 193043일 => 19시 30분 43초 create_time = create_date_time[8:] chat_log_data['createDateTime'] = create_date_time chat_log_data['createDate'] = create_date chat_log_data['createTime'] = create_time # 생성 날짜, 시간에 대한 정보를 바꾸었으니 다시 원상 복구 request.POST._mutable = mutable # 이 데이터를 토대로 채팅 생성 return CreateModelMixin.create(self, request, *args, **kwargs)
def create(self, request, *args, **kwargs): logger.info("TRY CREATE WELFARE ||" + create_log_content(request)) welfare_data = request.data disables = welfare_data.get('disables', []) house_types = welfare_data.get('houseTypes', []) desires = welfare_data.get('desires', []) target_characters = welfare_data.get('targetCharacters', []) life_cycles = welfare_data.get('lifeCycles', []) responsibles = welfare_data.get('responsibles', []) # 유효성 검사를 거치지않는 필드들에 대해서 따로 검사 try: for disable in disables: Disable.objects.get(disableId=disable) for house_type in house_types: HouseType.objects.get(houseTypeId=house_type) for desire in desires: Desire.objects.get(desireId=desire) for target_character in target_characters: TargetCharacter.objects.get(targetCharacterId=target_character) for life_cycle in life_cycles: LifeCycle.objects.get(lifeCycleId=life_cycle) for responsible in responsibles: Responsible.objects.get(responsibleId=responsible) except Disable.DoesNotExist or Welfare.DoesNotExist or HouseType.DoesNotExist or TargetCharacter.DoesNotExist \ or LifeCycle.DoesNotExist or Responsible.DoesNotExist: return Response(status=status.HTTP_400_BAD_REQUEST) return CreateModelMixin.create(self, request, *args, **kwargs)
def create(self, request): res = CreateModelMixin.create(self, request) if res.status_code == 201: tok = CommunicationThreadToken.objects.create( thread=self.object.thread, user=self.object.author) log.info('Reply token with UUID %s created.' % (tok.uuid)) return res
def create(self, request, *args, **kwargs): bulk = isinstance(request.data, list) if not bulk: return CreateModelMixin.create(self, request, *args, **kwargs) else: data = self.clear_request_data(request) serializer = self.get_serializer(data=data, many=True) serializer.is_valid(raise_exception=True) self.perform_bulk_create(serializer) return Response(serializer.data, status=status.HTTP_201_CREATED)
def create(self, request, *args, **kwargs): identity = Identity.objects.get(current_user=request.user) if len( Absence.objects.filter(applier=identity, time_absence=request.POST.get( 'time_absence', '20161103'))) != 0: return Response({'msg': 'Duplicated absence'}, status=status.HTTP_400_BAD_REQUEST) upper_bound = Service.get_upper_bound(identity.type) decrease_time = 1 absence_time = identity.absence_times absence_type = request.POST.get('type', '') if absence_type == '全体排练+弦乐分排' or absence_type == '全体排练+管乐分排': absence_time += 1 decrease_time += 1 if absence_time >= upper_bound: return Response({'msg': 'You have used up all of your chances.'}, status=status.HTTP_403_FORBIDDEN) Service.change_absence_time(identity, identity.absence_times + decrease_time) Service.send_email(identity.name, timezone.now(), request.POST.get('reason', '')) return CreateModelMixin.create(self, request, *args, **kwargs)
def create(self, request, *args, **kwargs): # Django 에서는 request의 body로 들어온 정보를 변환하지 못하도록 막았기 때문에 이를 풀어줌 mutable = request.POST._mutable request.POST._mutable = True qna_data = request.data now_datetime = datetime.now() # 필드 중 생성 날짜. 시간들에 대한 정보를 클라이언트가 아닌 서버에서 생성 create_date_time = "%04d%02d%02d%02d%02d%02d" % ( now_datetime.year, now_datetime.month, now_datetime.day, now_datetime.hour, now_datetime.minute, now_datetime.second) create_date = create_date_time[:8] create_time = create_date_time[8:] qna_data['createDateTime'] = create_date_time qna_data['createDate'] = create_date qna_data['createTime'] = create_time # 생성 날짜, 시간에 대한 정보를 바꾸었으니 다시 원상 복구 request.POST._mutable = mutable # 이 데이터를 토대로 채팅 생성 return CreateModelMixin.create(self, request, *args, **kwargs)
def create(self, request, *args, **kwargs): logger.info("TRY CREATE MEMBER" + create_log_content(request)) # Django 에서는 request의 body로 들어온 정보를 변환하지 못하도록 막았기 때문에 이를 풀어줌 mutable = request.POST._mutable request.POST._mutable = True member_data = request.data social_id = member_data['socialId'] salting_with_social_id = 'hoxymetoo_' + social_id now_datetime = datetime.now() jobs = member_data.get('jobs', []) disables = member_data.get('disables', []) welfares = member_data.get('welfares', []) house_types = member_data.get('houseTypes', []) desires = member_data.get('desires', []) target_characters = member_data.get('targetCharacters', []) life_cycles = member_data.get('lifeCycles', []) # 유효성 검사를 거치지않는 필드들에 대해서 따로 검사 try: for job in jobs: Job.objects.get(jobId=job) for disable in disables: Disable.objects.get(disableId=disable) for welfare in welfares: Welfare.objects.get(welId=welfare) for house_type in house_types: HouseType.objects.get(houseTypeId=house_type) for desire in desires: Desire.objects.get(desireId=desire) for target_character in target_characters: TargetCharacter.objects.get(targetCharacterId=target_character) for life_cycle in life_cycles: LifeCycle.objects.get(lifeCycleId=life_cycle) except Job.DoesNotExist or Disable.DoesNotExist or Welfare.DoesNotExist or HouseType.DoesNotExist or \ Desire.DoesNotExist or TargetCharacter.DoesNotExist or LifeCycle.DoesNotExist: logger.error("ERROR with field associated with CREATE MEMBER" + create_log_content(request)) return Response(status=status.HTTP_400_BAD_REQUEST) # 필드 중 생성 날짜. 시간들에 대한 정보를 클라이언트가 아닌 서버에서 생성 create_date_time = "%04d%02d%02d%02d%02d%02d" % ( now_datetime.year, now_datetime.month, now_datetime.day, now_datetime.hour, now_datetime.minute, now_datetime.second) create_date = create_date_time[:8] create_time = create_date_time[8:] mem_key = hashlib.sha256(salting_with_social_id.encode()).hexdigest() member_data['memKey'] = mem_key member_data['createDateTime'] = create_date_time member_data['updateDateTime'] = create_date_time member_data['createDate'] = create_date member_data['updateDate'] = create_date member_data['createTime'] = create_time member_data['updateTime'] = create_time # mutable 원상복구 request.POST._mutable = mutable # 이 데이터를 토대로 멤버 생성 CreateModelMixin.create(self, request, *args, **kwargs) instance = Member.objects.get(socialId=social_id) serializer = self.get_serializer(instance) serializer_data = serializer.data list_of_welfare_of_recommend = self.select_welfare_of_member(social_id) for welfare_of_recommend in list_of_welfare_of_recommend: MemWelfare.objects.get_or_create(socialId=instance, welId=welfare_of_recommend) member_data = self.changeAddressToString(serializer_data) decrypt_member_data = self.decryptMemberData(social_id=social_id, member_data=member_data) return Response(decrypt_member_data)
def create(self, request, *args, **kwargs): # Test if the username exists username = request.data['username'] if not User.objects.filter(username=username).exists(): return Response({'User does not exist'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) upload_extras = request.data['upload_extras'] dp_type = request.data['data_product_type'] request.data['data'] = request.FILES['file'] # Add the SNEx2 targetid of the target to request targetname = request.data['targetname'] targetquery = Target.objects.filter(name=targetname) if not targetquery: targetquery = TargetName.objects.filter(name=targetname) targetid = targetquery.first().target_id else: targetid = targetquery.first().id request.data['target'] = targetid # Sort the extras keywords into the appropriate dictionaries extras = {} extras['reduction_type'] = upload_extras.pop('reduction_type', '') background_subtracted = upload_extras.pop('background_subtracted', '') if background_subtracted: extras['background_subtracted'] = background_subtracted extras['subtraction_algorithm'] = upload_extras.pop( 'subtraction_algorithm', '') extras['template_source'] = upload_extras.pop( 'template_source', '') used_in = upload_extras.pop('used_in', '') if used_in: if ',' in used_in: last_name = used_in.split(',')[0] first_name = used_in.split(', ')[1] paper_query = Papers.objects.filter( target_id=targetid, author_last_name=last_name, author_first_name=first_name) if len(paper_query) != 0: paper_string = str(paper_query.first()) upload_extras['used_in'] = paper_string else: paper_query = Papers.objects.filter(target_id=targetid, author_last_name=used_in) if len(paper_query) != 0: paper_string = str(paper_query.first()) upload_extras['used_in'] = paper_string response = CreateModelMixin.create(self, request, *args, **kwargs) if response.status_code == status.HTTP_201_CREATED: dp = DataProduct.objects.get(pk=response.data['id']) try: #run_hook('data_product_post_upload', dp) run_custom_data_processor(dp, extras) # Make the ReducedDatumExtra row corresponding to this dp upload_extras['data_product_id'] = dp.id reduced_datum_extra = ReducedDatumExtra(target_id=targetid, data_type=dp_type, key='upload_extras', value=upload_extras) reduced_datum_extra.save() except Exception: ReducedDatum.objects.filter(data_product=dp).delete() dp.delete() return Response( { 'Data processing error': '''There was an error in processing your DataProduct into \ individual ReducedDatum objects.''' }, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return response