Пример #1
0
    def setUp(self) -> None:
        """Create all db tables before each test"""
        self.client = app.test_client()
        self.app_context = app.app_context()

        with self.app_context:
            db.create_all()

            self.keynote_1 = KeynoteModel(**TEST_KEYNOTE_1)
            self.keynote_2 = KeynoteModel(**TEST_KEYNOTE_2)
            self.member_1 = MemberModel(**TEST_MEMBER_1)
            self.member_2 = MemberModel(**TEST_MEMBER_2)
            self.meeting_1 = MeetingModel(**TEST_MEETING_1)
            self.meeting_2 = MeetingModel(**TEST_MEETING_2)
            self.permission_1 = PermissionModel(**TEST_PERMISSION_1)
            self.permission_2 = PermissionModel(**TEST_PERMISSION_2)
            self.permission_3 = PermissionModel(**TEST_PERMISSION_3)
            self.permission_4 = PermissionModel(**TEST_PERMISSION_4)
            self.permission_5 = PermissionModel(**TEST_PERMISSION_5)
            self.permission_6 = PermissionModel(**TEST_PERMISSION_6)
            self.permission_7 = PermissionModel(**TEST_PERMISSION_7)
            self.permission_8 = PermissionModel(**TEST_PERMISSION_8)
            self.project_1 = ProjectModel(**TEST_PROJECT_1)
            self.project_2 = ProjectModel(**TEST_PROJECT_2)
            self.role_1 = RoleModel(**TEST_ROLE_1)
            self.role_2 = RoleModel(**TEST_ROLE_2)
            self.role_3 = RoleModel(**TEST_ROLE_3)
            self.role_4 = RoleModel(**TEST_ROLE_4)
            self.role_5 = RoleModel(**TEST_ROLE_5)
            self.speaker_1 = SpeakerModel(**TEST_SPEAKER_1)
            self.speaker_2 = SpeakerModel(**TEST_SPEAKER_2)
Пример #2
0
    def post(self, member_id):
        json_data = request.get_json()

        member = MemberModel(member_id, **json_data)
        try:
            member.save_to_db()
        except ValueError:
            return {
                "message": "An error occurred inserting the item."
            }, 500  # Internal server error

        return member.json(), 201  # created status code
    def test_find_by_id(self):
        with self.app_context:
            member_1, _ = self.add_member_to_db(self.member_1, self.role_1)

            member = MemberModel.find_by_id(member_1.id)

            self.assertEqual(member.email, self.EMAIL)
    def test_find_all(self):
        with self.app_context:
            member, _ = self.add_member_to_db(self.member_1, self.role_1)

            members = MemberModel.find_all()

            self.assertEqual(members[0].id, member.id)
Пример #5
0
def login() -> ApiResponse:
    """Login a member"""
    member_json = request.get_json()
    email = member_json["email"]
    password = member_json["password"]

    member = MemberModel.find_by_email(email)

    if member and member.verify_password(password) and member.is_active:
        identity = member_schema.dump(member)
        access_token = create_access_token(identity=identity, fresh=True)
        _refresh_token = create_refresh_token(identity=identity)
        add_token_to_database([access_token, _refresh_token], member.id)

        return (
            jsonify(
                {
                    "access_token": access_token,
                    "refresh_token": _refresh_token,
                    "member": identity,
                }, ),
            200,
        )

    abort(401, description=MEMBER_401)
Пример #6
0
def members():

    members=MemberModel.fetch_all()
    print(members)
    if request.method == 'POST':
        fname = request.form['fname']
        lname = request.form['lname']
        email = request.form['email']
        
        record = MemberModel(fname=fname,lname=lname,email=email)
        record.create_record()
        flash("Record has been successifully created","success")
       
        return redirect(url_for('members'))

    return render_template('members.html', all_members = members)
Пример #7
0
def put_member(member_id: int) -> ApiResponse:
    member = MemberModel.find_by_id(member_id)
    identity = get_jwt_identity()

    if member and identity["id"] != member.id:
        abort(
            401,
            description=ERROR_401,
        )

    if not member:
        abort(
            404,
            description=ERROR_404.format("Member", "id", member_id),
        )

    member_json = request.get_json()

    member_by_email = MemberModel.find_by_email(member_json.get("email"))

    if member_by_email and member_by_email.id != member_id:
        abort(
            409,
            description=ERROR_409.format(
                "Member",
                "email",
                member_json.get("email"),
            ),
        )

    member.email = member_json.get("email")
    member.mobile_phone = member_json.get("mobile_phone")
    member.first_name = member_json.get("first_name")
    member.last_name = member_json.get("last_name")
    member.linkedin_profile = member_json.get("linkedin_profile")
    member.github_profile = member_json.get("github_profile")
    member.twitter_profile = member_json.get("twitter_profile")
    member.profile_picture = member_json.get("profile_picture")
    member.save_to_db()

    return (
        jsonify({
            "message": MODIFIED.format("Member"),
            "member": member_schema.dump(member),
        }),
        200,
    )
Пример #8
0
    def post(self):
        member_id = request.form.get('member_id')

        if MemberModel.find_by_id(member_id):
            message = "Correct member id"
        else:
            message = "Wrong member id"

        return render_template('form.html', message=message)
    def test_get_permissions(self):
        with self.app_context:
            member_1, role = self.add_member_to_db(self.member_1, self.role_1)
            permission = self.add_permission_to_db(self.permission_1)
            role.permissions.append(permission)

            member = MemberModel.find_by_id(member_1.id)

            self.assertEqual(member.get_permissions(),
                             [permission.permission_name])
Пример #10
0
    def test_meetings_members_relation(self):
        with self.app_context:
            meeting, member, _ = self.add_meeting_to_db(
                self.meeting_1, self.member_1, self.role_1)

            meeting = MeetingModel.find_by_id(meeting.id)
            member = MemberModel.find_by_id(member.id)
            meeting.members.append(member)

            self.assertEqual(meeting.members[0].email, member.email)
Пример #11
0
def get_member(member_id: int) -> ApiResponse:
    member = MemberModel.find_by_id(member_id)

    if not member:
        abort(404, description=ERROR_404.format("Member", "id", member_id))

    return (
        jsonify({
            "member": member_schema.dump(member),
        }),
        200,
    )
    def test_projects_members_relation(self):
        with self.app_context:
            self.role_1.save_to_db()
            self.member_1.save_to_db()
            project_id = self.project_1.save_to_db().id
            member_id = self.member_1.save_to_db().id

            project = ProjectModel.find_by_id(project_id)
            member = MemberModel.find_by_id(member_id)
            project.members.append(member)

            self.assertEqual(project.members[0].email, "*****@*****.**")
Пример #13
0
def deactivate_member(member_id: int) -> ApiResponse:
    member = MemberModel.find_by_id(member_id)

    if not member:
        abort(404, description=ERROR_404.format("Member", "id", member_id))

    member.is_active = False
    member.save_to_db()

    return (
        jsonify({
            "message": DEACTIVATED.format("Member"),
            "member": member_schema.dump(member),
        }),
        200,
    )
Пример #14
0
 def post(self, name):
     if MemberModel.find_by_name(name):
         return {
             "message": "Member named {} is already exists.".format(name)
         }, 400
     member = MemberModel(name, 0)
     try:
         member.save_to_db()
     except:
         return {
             "message": "An error occurred while registering member."
         }, 500
     return member.json(), 201
Пример #15
0
def post_member() -> ApiResponse:
    member_json = request.get_json()

    if MemberModel.find_by_email(member_json.get("email")):
        abort(
            409,
            description=ERROR_409.format(
                "Member",
                "email",
                member_json.get("email"),
            ),
        )

    member = member_schema.load(member_json)
    member.save_to_db()

    return (
        jsonify({
            "message": CREATED.format("Member"),
            "member": member_schema.dump(member),
        }),
        201,
    )
Пример #16
0
def change_member_password(member_id: int) -> ApiResponse:
    member = MemberModel.find_by_id(member_id)
    identity = get_jwt_identity()

    if member and identity["id"] != member.id:
        abort(
            401,
            description=ERROR_401,
        )

    if not member:
        abort(404, description=ERROR_404.format("Member", "id", member_id))

    member_json = request.get_json()
    member.password_hash = generate_password_hash(member_json.get("password"))
    member.save_to_db()

    return (
        jsonify({
            "message": PASSWORD_MODIFIED,
            "member": member_schema.dump(member),
        }),
        200,
    )
Пример #17
0
 def add_member_to_db(
     self, member: MemberModel, role: RoleModel
 ) -> Tuple[MemberModel, RoleModel]:
     role = self.add_role_to_db(role)
     member = member.save_to_db()
     return member, role
Пример #18
0
 def get(self, name):
     member = MemberModel.find_by_name(name)
     if member:
         return member.json(), 200
     return {"message": "Member named {} was not found.".format(name)}, 404
Пример #19
0
 def get(self):
     # List comprehensions version
     return {
         'members': [member.json() for member in MemberModel.find_all()]
     }
Пример #20
0
def add_claims_to_jwt(identity: Dict) -> MemberJSON:
    return {
        "permissions":
        MemberModel.find_by_id(identity["id"]).get_permissions()
    }