def update_log(request, pk, format=None): try: log = Log.objects.get(pk=pk) except Log.DoesNotExist: return responseJsonUtil(False, 404, None) data = JSONParser().parse(request) tmpNotes = getPropertyByName('notes', data.items()) with transaction.commit_on_success(): for tmpObject in tmpNotes: tmpId = getPropertyByName('id', tmpObject.items()) tmpAction = getPropertyByName('action', tmpObject.items()) if tmpAction == 1: tmpNote = Note.objects.get(pk=getPropertyByName('id', tmpObject.items())) tmpNote.note = getPropertyByName('note', tmpObject.items()) tmpNote.save() if tmpId == 0: tmpNote = noteDeserializer(tmpObject) tmpNote.save() Log.objects.filter(id=getPropertyByName('id', data.items())).update( activity=getPropertyByName('activity', data.items()), time=getPropertyByName('time', data.items()), project=Project.objects.get(pk=getPropertyByName('project', data.items()))) tmpLog = Log.objects.get(pk=pk) tmpSerializer = LogSerializer(tmpLog) return responseJsonUtil(True, None, tmpSerializer)
def register_user(request): try: data = JSONParser().parse(request) tmpNewUser = User.objects.create(email=getPropertyByName('email', data.items()), password=getPropertyByName('password', data.items())); newSessionHandler(request, tmpNewUser); tmpUserSerializer = UserSerializer(tmpNewUser) return responseJsonUtil(True, None, tmpUserSerializer) except BaseException: return responseJsonUtil(False, 'ERROR101', None)
def sendStatus(request, format=None): data = JSONParser().parse(request) cursor = connection.cursor() tmpUser = User.objects.get(email=getPropertyByName('email', data.items())) tmpUserId = tmpUser.id tmpDate = convertDateFromDatePicker(getPropertyByName('date', data.items())) cursor.execute('select distinct project_id from main_log where date =\'' + tmpDate + '\'' + ' and user_id =' + str(tmpUserId) + ' and entity_status=0') for row in cursor.fetchall(): tmpAdminEmails = [] tmpLogs = [] tmpProjectId = row[0] cursor.execute('select email from main_project mproject, main_project_user mprojectuser, main_user muser ' 'where mproject.id = mprojectuser.project_id and mprojectuser.user_id = muser.id ' 'and mproject.id=' + str(tmpProjectId) + ' and mprojectuser.role_id = 1') for row in cursor.fetchall(): tmpAdminEmails.insert(0,row[0]) cursor.execute('select activity, log.time, log.date, project.name as project_name, log.id ' 'from main_log log inner join main_project project on log.project_id = project.id ' 'where log.entity_status=0 and log.user_id =' + str(tmpUserId) + ' and ' 'log.date =\'' + tmpDate + '\'' + ' and project_id = ' + str(tmpProjectId)) for row in cursor.fetchall(): tmpLogs.insert(0,row) user_email = getPropertyByName('email', data.items()) if emailExists(user_email): code = md5Encoding(tokenGenerator()) FROM = user_email activities = "" for item in tmpLogs: cursor.execute('select note from main_note where log_id =' + str(item[4]) + ' and entity_status = 0') notes = "" for row in cursor.fetchall(): notes += '\n' + row[0] activities += '\n'"""Task: """ + item[0] + '\n' """Time: """ + str(item[1]) + """ hours""" '\n' + """Notes: """ + notes +'\n' SUBJECT = "Status " + item[3] + " Date: " + str(item[2]) MESSAGE = """ There is my status: """ + activities + """ Thanks""" try: tmpUser = User.objects.get(email=user_email) except: return responseJsonUtil(False, 'ERROR000', None) try: sendEmail(user_email, tmpAdminEmails, SUBJECT, MESSAGE) except: return responseJsonUtil(False, 'ERROR002', None) else: return responseJsonUtil(False, 'ERROR102', None) return responseJsonUtil(True, None, None)
def resetPassword(request, format=None): if request.method == 'PUT': data = JSONParser().parse(request) tmpEmail = getPropertyByName('email', data.items()) tmpToken = getPropertyByName('token', data.items()) tmpPassword = getPropertyByName('password', data.items()) if correctForgotPasswordToken(tmpEmail, tmpToken): User.objects.filter(email=tmpEmail).update(password=tmpPassword) tmpUser = User.objects.get(email=tmpEmail) newSessionHandler(request, tmpUser); tmpSerializer = UserSerializer(tmpUser) return responseJsonUtil(True, None, tmpSerializer) else: return responseJsonUtil(False, 'ERROR104', None)
def update_user(request, pk, format=None): try: user = User.objects.get(pk=pk) except User.DoesNotExist: return responseJsonUtil(False, 404, None) data = JSONParser().parse(request) tmpName = getPropertyByName('name', data.items()) tmpPassword = getPropertyByName('password', data.items()) user.name = tmpName user.password = tmpPassword user.entity_status = 0 user.save() serializer = UserSerializer(user, data=data) return responseJsonUtil(True, None, serializer)
def forgotPassword(request, format=None): if request.method == 'PUT': data = JSONParser().parse(request) TO = getPropertyByName('email', data.items()) if emailExists(TO): code = md5Encoding(tokenGenerator()) SUBJECT = "AliveTracker forgot password instructions. (DO NOT REPLY)" FROM = "*****@*****.**" MESSAGE = """ Hey, we heard you lost your AliveTracker password. Use the following link to reset your password: http://www.alivetracker.com/#resetPasswordPage?email=""" + TO + """&token=""" + code + """ Ignore this email if you haven't experienced any password trouble. Thanks, AliveTracker Team""" try: tmpUser = User.objects.get(email=TO) User_Forgot_Password.objects.get_or_create(user=tmpUser) User_Forgot_Password.objects.filter(user=tmpUser).update(token=code) except: return responseJsonUtil(False, 'ERROR000', None) try: sendEmail(FROM, TO, SUBJECT, MESSAGE) return responseJsonUtil(True, None, None) except: return responseJsonUtil(False, 'ERROR002', None) else: return responseJsonUtil(False, 'ERROR102', None)
def passwordSendEmail(request, format=None): if request.method == 'PUT': data = JSONParser().parse(request) email = getPropertyByName('email', data.items()) token = getPropertyByName('token', data.items()) if correctForgotPasswordToken(email, token): TO = email tmpPassword = tokenGenerator() code = md5Encoding(tmpPassword) SUBJECT = "AliveTracker reset password message. (DO NOT REPLY)" FROM = "*****@*****.**" MESSAGE = """ You requested to have your password reset, below is your new password. Username:""" + TO + """ New Password: """ + tmpPassword + """ To login your new password, please go to http://www.alivetracker.com Thanks, AliveTracker Team""" try: User.objects.filter(email=TO).update(password=code, entity_status=2) except: return responseJsonUtil(False, 'ERROR000', None) try: sendEmail(FROM, TO, SUBJECT, MESSAGE) return responseJsonUtil(True, None, None) except: return responseJsonUtil(False, 'ERROR002', None) else: return responseJsonUtil(False, 'ERROR100', None)
def put(self, request, asset_name, **kwargs): data = JSONParser().parse(request) if data is None or len(data) == 0: return Response( "Request body must contain asset details to set on the asset", status=status.HTTP_400_BAD_REQUEST) asset = self.get_object(asset_name) asset_details_meta = AssetDetailMeta.objects.filter( asset_class=asset.asset_class) errors = self.validate_details(asset_details_meta, data, asset.asset_class) if len(errors) > 0: return Response(data={"errors": errors}, status=status.HTTP_400_BAD_REQUEST) asset_details_to_create = [] for detail, value in data.items(): asset_detail = self.check_for_existence(asset.id, detail) if asset_detail is None: indict = { "asset_id": asset, "asset_detail_name": detail, "asset_detail_value": value } asset_details_to_create.append( AssetDetail.convert_dict_to_asset_details(indict)) else: asset_detail.asset_detail_value = data.get(detail) asset_detail.save() if len(asset_details_to_create) > 0: AssetDetail.objects.bulk_create(asset_details_to_create) return Response(status=status.HTTP_200_OK)
def groupsServices(argRequest, format=None): if userAuthentication(argRequest): if argRequest.method == 'POST': try: tmpData = JSONParser().parse(argRequest) tmpNewGroup = Group.objects.create(name=getPropertyByName('name', tmpData.items()), description=getPropertyByName('description', tmpData.items()), logo_url=getPropertyByName('logo_url', tmpData.items()), web_site_url=getPropertyByName('web_site_url', tmpData.items()), created=date.today()) tmpUser = getUserByRequest(argRequest) Group_User.objects.create(user=tmpUser, group=tmpNewGroup, role=getAdminRole()) tmpSerializer = GroupSerializer(tmpNewGroup) return responseJsonUtil(True, None, tmpSerializer) except BaseException: return responseJsonUtil(False, 'ERROR000', None) if argRequest.method == 'PUT': tmpData = JSONParser().parse(argRequest) tmpidtoevaluate = getPropertyByName('id', tmpData.items()) if tmpidtoevaluate == 0: try: tmpnewgroup = Group.objects.create(name=getPropertyByName('name', tmpData.items()), description=getPropertyByName('description', tmpData.items()), logo_url=getPropertyByName('logo_url', tmpData.items()), web_site_url=getPropertyByName('web_site_url', tmpData.items()), created=date.today()) tmpuser = getUserByRequest(argRequest) Group_User.objects.create(user = tmpuser, group = tmpnewgroup, role = getAdminRole()) tmpserializer = GroupSerializer(tmpnewgroup) return responseJsonUtil(True, None, tmpserializer) except BaseException: return responseJsonUtil(False,'ERROR000', None) else: try: Group.objects.filter(id=getPropertyByName('id', tmpData.items())).update( name=getPropertyByName('name', tmpData.items()), description=getPropertyByName('description', tmpData.items()), logo_url=getPropertyByName('logo_url', tmpData.items()), web_site_url=getPropertyByName('web_site_url', tmpData.items())) modifiedGroup = Group.objects.get(id=getPropertyByName('id', tmpData.items())) tmpSerializer = GroupSerializer(modifiedGroup) return responseJsonUtil(True, None, tmpSerializer) except Group.DoesNotExist: return responseJsonUtil('False', 'ERROR000', None) if argRequest.method == 'GET': return responseJsonUtil(True, None, None) else: return responseJsonUtil(False, 'ERROR103', None)
def setPassword(request, format=None): if request.method == 'PUT': if not userAuthentication(request): return responseJsonUtil(False, 'ERROR103', None) data = JSONParser().parse(request) tmpPassword = getPropertyByName('password', data.items()) User.objects.filter(session_key=request.session._session_key).update(password=tmpPassword) tmpUser = getUserByRequest(request) tmpSerializer = UserSerializer(tmpUser) return responseJsonUtil(True, None, tmpSerializer)
def update_default_group(request, pk, format=None): try: user = User.objects.get(pk=pk) except User.DoesNotExist: return responseJsonUtil(False, 404, None) data = JSONParser().parse(request) tmpDefaultGroup = getPropertyByName('default_group', data.items()) user.default_group = tmpDefaultGroup user.save() serializer = UserSerializer(user, data=data) return responseJsonUtil(True, None, serializer)
def user_authentication(argRequest, format=None): try: tmpData = JSONParser().parse(argRequest) tmpEmail = str(getPropertyByName('email', tmpData.items())) tmpPassword = str(getPropertyByName('password', tmpData.items())) tmpUser = User.objects.exclude(entity_status = 1).get(password=tmpPassword, email=tmpEmail) if argRequest.method == 'POST': if 'id' not in argRequest.session or argRequest.session._session_key == locales.INVALID_SESSION_KEY: newSessionHandler(argRequest, tmpUser) else: User.objects.filter(pk=tmpUser.id).update(session_key=argRequest.session._session_key) tmpSerializer = UserSerializerDTO(tmpUser) return responseJsonUtil(True, None, tmpSerializer) except User.DoesNotExist: return responseJsonUtil(False, 'ERROR400', None) except BaseException: return responseJsonUtil(False, 'ERROR000', None)
def saveProject(argRequest, argGroupId, format=None): try: if not userAuthentication(argRequest): return responseJsonUtil(False, 'ERROR103', None) tmpData = JSONParser().parse(argRequest) if argRequest.method == 'POST': tmpNewProject = Project.objects.create(name=getPropertyByName('name', tmpData.items()), description=getPropertyByName('description', tmpData.items()), created=date.today(), entity_status=0, group=Group.objects.get(pk=argGroupId)) updateUserListInProject(tmpData, tmpNewProject.id) tmpSerializer = ProjectSerializer(tmpNewProject) return responseJsonUtil(True, None, tmpSerializer) if argRequest.method == 'PUT': Project.objects.filter(id=getPropertyByName('id', tmpData.items())).update( name=getPropertyByName('name', tmpData.items()), description=getPropertyByName('description', tmpData.items()), group=Group.objects.get(pk=argGroupId)) updateUserListInProject(tmpData, getPropertyByName('id', tmpData.items())) return responseJsonUtil(True, None, None) except Project.DoesNotExist: return responseJsonUtil(False, 'ERROR500', None) except BaseException: return responseJsonUtil(False, 'ERROR000', None)
def myLogsServices(request, group, argLog, format=None): if not userAuthentication(request): return responseJsonUtil(False, 'ERROR103', None) if request.method == 'DELETE': if not logExists(argLog): return responseJsonUtil(False, 'ERROR700', None) Log.objects.filter(pk=argLog).update(entity_status=1) return responseJsonUtil(True, None, None) if request.method == 'GET': tmpDate = getPropertyByName("date",request.QUERY_PARAMS.items()) if not tmpDate: return responseJsonUtil(False, 'ERROR800', None) tmpResultLogs = Log.objects.raw('select log.id , activity, log.time, log.date, log.user_id, project.id as project_id, project.name as project_name, log.group_id ' 'from main_log log inner join main_project project on log.project_id = project.id ' 'where log.entity_status=0 and log.user_id = '+str(getUserByRequest(request).id)+' and log.date =\''+tmpDate+'\'') tmpSerializer = LogGroupProjectDateDTOSerializer(tmpResultLogs) return responseJsonUtil(True, None, tmpSerializer) if request.method == 'POST': data = JSONParser().parse(request) tmpActivities = getPropertyByName('activities', data.items()) tmpGroup = getPropertyByName('group', data.items()) tmpDate = convertDateFromDatePicker(getPropertyByName('date', data.items())) tmpUser = getUserByRequest(request) with transaction.commit_on_success(): deleteLog(getUserByRequest(request).id, tmpGroup, tmpDate) for tmpObject in tmpActivities: tmpErrorName = validateProject(request, getPropertyByName('project', tmpObject.items()), getPropertyByName('group', tmpObject.items())) if tmpErrorName: transaction.rollback() return responseJsonUtil(False, tmpErrorName, None) tmpLog = logDeserializer(tmpObject, tmpUser, tmpDate) tmpLog.save() return responseJsonUtil(True, None, None) return responseJsonUtil(False, None, None)
def updateUserRole(argRequest, format=None): if not userAuthentication(argRequest): return responseJsonUtil(False, 'ERROR103', None) try: tmpData = JSONParser().parse(argRequest) tmpGroupId = getPropertyByName('id', tmpData.items()) deleteUsersBelongGroup(tmpGroupId) insertProjectUsers(tmpData, tmpGroupId) return responseJsonUtil(True, None, None) except Group_User.DoesNotExist: return responseJsonUtil(False, 'ERROR300', None) except BaseException: return responseJsonUtil(False, 'ERROR000', None)
def create_log(request, format=None): if not userAuthentication(request): return responseJsonUtil(False, 'ERROR103', None) try: tmpData = JSONParser().parse(request) tmpUser = getUserByRequest(request) tmpDate = convertDateFromDatePicker(getPropertyByName('date', tmpData.items())) tmpLog = logDeserializer(tmpData, tmpUser, tmpDate) tmpLog.save() tmpSerializer = LogSerializer(tmpLog) return responseJsonUtil(True, None, tmpSerializer) except BaseException: return responseJsonUtil(False, 'ERROR000', None)
def scraper(request): """get the json data and convert into python dictionary which pass to news_scrap function after correcting url for further processing allowed methods : GET, POST """ data = {} raw_data = JSONParser().parse(request) for key, value in raw_data.items(): if str(value['link']).startswith('https://') or str(value['link']).startswith('http://'): data[key] = value['link'] else: data[key] = 'https://' + str(value['link']) news_scrap(data) content = {"scraping data": "please go to list view"} return Response(content, status=status.HTTP_200_OK)
def testAPI(request): if request.method == "POST": data = JSONParser().parse(request) if ErrorFlag(data) is True: user = request.user serializer = TodoSerializer(data=data) if serializer.is_valid(): serializer.save() return JsonResponse(serializer.data, status=201) return JsonResponse(data={ "status": False, "message": serializer.errors }, status=500) else: user = User.objects.filter(is_active=True) print(data) for key, value in data.items(): if key == "name": if user.filter(username=data["name"]).first(): return JsonResponse(data={ "status": False, "label": "username_error", "message": "このユーザー名はすでに使用されています" }, status=500) elif key == "email": if user.filter(email=data["email"]).first(): return JsonResponse(data={ "status": False, "label": "email_error", "message": "このメールアドレスはすでに使用されています" }, status=500) pattern = "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$" if not re.match(pattern, data["email"]): print("error") return JsonResponse(data={ "status": False, "label": "email_error", "message": "正しいメールアドレスを入力してください" }, status=500) return JsonResponse(data={"status": True}, status=201)
def match_request_detail(request, uuid): if request.method == 'PUT': data = JSONParser().parse(request) writeable_data = dict(data.items() | [('id', uuid)]) serializer = MatchRequestSerializer(data=writeable_data) if serializer.is_valid(): serializer.save() return JSONResponse(serializer.data, status=200) else: return HttpResponse(status=422) elif request.method == 'GET': try: match_request = MatchRequest.objects.get(uuid=uuid) serializer = MatchRequestSerializer(match_request) return JSONResponse(serializer.data) except MatchRequest.DoesNotExist: return HttpResponse(status=404) else: return HttpResponse(status=405)
def post(self,request,*args,**kwrgs): try: validated_data=JSONParser().parse(request) except Exception as e: print(e) return Response({'status':'Failed !' ,'error':' Incorrect Data'},status=status.HTTP_400_BAD_REQUEST) company_obj=self.get_object(validated_data.get('company_name')) if company_obj==0: for k,v in validated_data.items(): if str(v)=='' or str(v).strip()=='' or str(v).strip()=='null' : validated_data[k]=None serlizerobj=CompanyInfoSerializers(data=validated_data) if serlizerobj.is_valid(): serlizerobj.save() return Response({'status':'succses','error':' Created Succesfully'},status=status.HTTP_201_CREATED) else: return Response({'status':'Failed !','error':str(serlizerobj.errors)},status=status.HTTP_400_BAD_REQUEST) else: return Response({'status':'Failed','error':' Company name already exist in database'},status=status.HTTP_202_ACCEPTED)
def createOrUpdateUserGroup(argRequest, argGroupID, argEmailUser, format=None): data = JSONParser().parse(argRequest) if argRequest.method == 'POST': try: TO = argEmailUser FROM = "*****@*****.**" tmpPassword = tokenGenerator() onUserInvitationEmail(FROM,TO,tmpPassword) encryptedPassword = md5Encoding(tmpPassword) tmpNewUser = User.objects.create(email=argEmailUser, password=encryptedPassword) newSessionHandler(argRequest, tmpNewUser) tmpGroupInstance = Group.objects.get(pk=argGroupID) Group_User.objects.create(user=tmpNewUser, group=tmpGroupInstance, role=getDeveloperRole()) tmpUserSerializer = UserSerializer(tmpNewUser) return responseJsonUtil(True, None, tmpUserSerializer) except BaseException: return responseJsonUtil(False, 'ERROR101', None) if argRequest.method == 'PUT': try: tmpUserToAddGroup = User.objects.get(pk=getPropertyByName('id', data.items())) tmpGroupInstance = Group.objects.get(pk=argGroupID) Group_User.objects.create(user=tmpUserToAddGroup, group=tmpGroupInstance, role=getDeveloperRole()) tmpUserSerializer = UserSerializer(tmpUserToAddGroup) return responseJsonUtil(True, None, tmpUserSerializer) except BaseException: return responseJsonUtil(False, 'ERROR101', None)
def index_create(request): if request.method == "GET": annotations = models.Annotation.objects.all() serializer = serializers.AnnotationSerializer(annotations, many=True) return JSONResponse(serializer.data) elif request.method == "POST": data = JSONParser().parse(request) for field, value in data.items(): if field == "user": data[field] = int(value) serializer = serializers.AnnotationSerializer(data=data) print(serializer) if serializer.is_valid(): serializer.save() response = HttpResponse(status=303) response["Location"] = reverse("read_update_delete", kwargs={"pk": serializer.data["id"]}) print(response) return response else: return HttpResponseBadRequest(content=str(serializer.errors)) else: return HttpResponseForbidden()