예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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)
예제 #4
0
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)
예제 #5
0
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)
예제 #6
0
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)
예제 #7
0
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)
예제 #8
0
    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)
예제 #9
0
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)
예제 #10
0
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)
예제 #11
0
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)
예제 #12
0
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)
예제 #13
0
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)
예제 #14
0
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)
예제 #15
0
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)
예제 #16
0
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)
예제 #17
0
파일: views.py 프로젝트: JohnWick-1/KCNETHR
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)
예제 #18
0
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)
예제 #19
0
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)
예제 #20
0
    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)
예제 #21
0
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)
예제 #22
0
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()