Пример #1
0
    def get(self, login=None):
        authorize(request.headers["Authorization"])

        if login is None:
            return self.get_all_users()
        else:
            return self.get_a_user(login)
Пример #2
0
    def get(self, contact_id=None):
        authorize(request.headers["Authorization"])

        if contact_id is None:
            return self.get_all_contacts()
        else:
            return self.get_a_contact(contact_id)
    def get(self, contact_id=None):
        authorize(request.headers["Authorization"])

        if contact_id is None:
            return self.get_all_contacts()
        else:
            return self.get_a_contact(contact_id)
Пример #4
0
    def get(self, login=None):
        authorize(request.headers["Authorization"])

        if login is None:
            return self.get_all_users()
        else:
            return self.get_a_user(login)
Пример #5
0
    def delete(self, contact_id):
        authorize(request.headers["Authorization"])

        existing = mongo.db.contacts.find_one_or_404({"_id": contact_id})

        c_delete = existing.contact_from_dict(existing)
        c_delete.deleteDate = datetime.now()

        delete_id = mongo.db.contacts_deleted.insert(c_delete.format_for_delete())

        mongo.db.contacts.remove({"_id": contact_id})

        print "deleted : ", delete_id

        return {"message": "deleted"}, 200
    def post(self, quiz_id, contact_group=None):
        session = authorize(request.headers["Authorization"])

        if contact_group is None: contact_group = "default"

        contacts = self.get_contacts(contact_group, session.get("user").get("login"))

        if contacts is None:
            return {"message": "no contact to send"}, 400

        criteria = {"createdBy": session.get('user').get('login'), "_id": int(quiz_id)}
        quiz = Quiz.quiz_from_dict(mongo.db.quiz.find_one_or_404(criteria))

        for contact in contacts:
            c = Contact.contact_from_dict(contact)
            p = Publication()
            p._id = get_id("publication")
            p.creationDate = datetime.now()
            p.hash = hashlib.sha256("%d.%s" % (p._id, str(p.creationDate))).hexdigest()
            p.by = session.get('user').get('login')
            p.quiz = quiz
            p.to = c
            mongo.db.publications.insert(p.format())
            self.send_email(quiz.title, p.hash, c.email, c.language)

        return {"message": "quiz %s published to %d contacts" % (quiz.title, len(contacts))}, 200
    def get(self, quiz_id=None):
        session = authorize(request.headers["Authorization"])

        if quiz_id is None:
            return self.get_all_quiz(session.get('user').get('login'))
        else:
            return (self.get_single_quiz(quiz_id)).format_http()
    def delete(self, contact_id):
        authorize(request.headers["Authorization"])

        existing = mongo.db.contacts.find_one_or_404({"_id": contact_id})

        c_delete = existing.contact_from_dict(existing)
        c_delete.deleteDate = datetime.now()

        delete_id = mongo.db.contacts_deleted.insert(
            c_delete.format_for_delete())

        mongo.db.contacts.remove({"_id": contact_id})

        print "deleted : ", delete_id

        return {"message": "deleted"}, 200
    def post(self, group_name=None):
        session = authorize(request.headers["Authorization"])
        print session

        contacts = post_parser.parse_args().get("contacts")
        if contacts is None:
            abort(403)

        if group_name is None: group_name = "default"

        new_contacts = 0
        existing_contact = 0
        for contact in contacts:
            print contact
            contact = Contact.contact_from_dict(contact)
            existing = mongo.db.contacts.find_one({"email": contact.email})

            if existing is None:
                contact._id = get_id("contacts")
                contact.creationDate = datetime.now()
                contact.createdBy = session.get("user").get("login")
                if contact.language is None:
                    contact.language = "fr"

                mongo.db.contacts.insert(contact.format())

                self.update_group(group_name, contact.createdBy, contact)

                new_contacts += 1
            else:
                existing_contact += 1
                contact = Contact.contact_from_dict(existing)
                self.update_group(group_name, contact.createdBy, contact)

        return {"inserted": new_contacts, "existing": existing_contact}, 200
Пример #10
0
    def delete(self):
        session_dict = authorize(request.headers["Authorization"])

        mongo.db.sessions.update({"token": session_dict.get('token'), "status": 0}, {"$set": {"status": 1}})

        print session_dict
        return '', 202
Пример #11
0
    def post(self):
        authorize(request.headers["Authorization"])

        user = User.user_from_dict(post_parser.parse_args())
        user.password = hashlib.sha256(user.password).hexdigest()
        user.creationDate = datetime.now()

        existing = mongo.db.users.find_one({"login":user.login})

        if not (existing is None):
            abort(409)

        user_id = mongo.db.users.insert(user.format_for_create())
        user._id = user_id
        print "inserted : ", user_id

        return user, 201
Пример #12
0
    def post(self):
        authorize(request.headers["Authorization"])

        user = User.user_from_dict(post_parser.parse_args())
        user.password = hashlib.sha256(user.password).hexdigest()
        user.creationDate = datetime.now()

        existing = mongo.db.users.find_one({"login": user.login})

        if not (existing is None):
            abort(409)

        user_id = mongo.db.users.insert(user.format_for_create())
        user._id = user_id
        print "inserted : ", user_id

        return user, 201
Пример #13
0
    def delete(self, quiz_id, question_id=None):
        session = authorize(request.headers["Authorization"])

        if question_id is None:
            return self.delete_quiz(session.get('user').get('login'), quiz_id)
        else:
            return self.delete_question(
                session.get('user').get('login'), quiz_id, question_id)
Пример #14
0
    def delete(self, login):
        authorize(request.headers["Authorization"])

        if login == SUPER_USER:
            abort(403)

        existing = mongo.db.users.find_one_or_404({"login": login})

        user_delete = User.user_from_dict(existing)
        user_delete.deleteDate = datetime.now()

        delete_id = mongo.db.users_deleted.insert(user_delete.format_for_delete())

        mongo.db.users.remove({"login": login})

        print "deleted : ", delete_id

        return {"message": "deleted"}, 200
Пример #15
0
 def post(self, pub_hash):
     self.parser.add_argument("Authorization",
                              type=str,
                              location='headers',
                              required=True,
                              help="Authorization header missing")
     session = authorize(request.headers["Authorization"])
     print session
     print participation_parser.parse_args()
Пример #16
0
    def delete(self, login):
        authorize(request.headers["Authorization"])

        if login == SUPER_USER:
            abort(403)

        existing = mongo.db.users.find_one_or_404({"login": login})

        user_delete = User.user_from_dict(existing)
        user_delete.deleteDate = datetime.now()

        delete_id = mongo.db.users_deleted.insert(
            user_delete.format_for_delete())

        mongo.db.users.remove({"login": login})

        print "deleted : ", delete_id

        return {"message": "deleted"}, 200
Пример #17
0
    def put(self, login):
        authorize(request.headers["Authorization"])

        if login == SUPER_USER:
            abort(403)

        existing = mongo.db.users.find_one({"login": login})
        if existing is None:
            abort(404)

        user_edit = User.user_from_dict(post_parser.parse_args())
        user_edit.password = hashlib.sha256(user_edit.password).hexdigest()
        user_edit.creationDate = existing.get('creationDate')

        print user_edit.format()

        mongo.db.users.update({"login": login}, {"$set": user_edit.format_for_update()})

        print "modified : ", user_edit

        return user_edit, 201
Пример #18
0
    def delete(self):
        session_dict = authorize(request.headers["Authorization"])

        mongo.db.sessions.update(
            {
                "token": session_dict.get('token'),
                "status": 0
            }, {"$set": {
                "status": 1
            }})

        print session_dict
        return '', 202
Пример #19
0
    def put(self, login):
        authorize(request.headers["Authorization"])

        if login == SUPER_USER:
            abort(403)

        existing = mongo.db.users.find_one({"login": login})
        if existing is None:
            abort(404)

        user_edit = User.user_from_dict(post_parser.parse_args())
        user_edit.password = hashlib.sha256(user_edit.password).hexdigest()
        user_edit.creationDate = existing.get('creationDate')

        print user_edit.format()

        mongo.db.users.update({"login": login},
                              {"$set": user_edit.format_for_update()})

        print "modified : ", user_edit

        return user_edit, 201
Пример #20
0
    def put(self, quiz_id):
        session = authorize(request.headers["Authorization"])
        put_request = Quiz.quiz_from_dict(put_parser.parse_args())

        criteria = {
            "createdBy": session.get('user').get('login'),
            "_id": int(quiz_id)
        }
        quiz = Quiz.quiz_from_dict(mongo.db.quiz.find_one_or_404(criteria))

        for qst in put_request.questions:
            self.add_question(qst, quiz)

        return {"message": "modified % s" % quiz_id}, 200
Пример #21
0
    def patch(self, quiz_id):
        session = authorize(request.headers["Authorization"])
        patch_request = Quiz.quiz_from_dict(
            patch_parser.parse_args()).format_patch()

        if len(patch_request) == 0:
            abort(400)

        criteria = {
            "createdBy": session.get('user').get('login'),
            "_id": int(quiz_id)
        }
        mongo.db.quiz.find_one_or_404(criteria)
        mongo.db.quiz.update(criteria, {"$set": patch_request})

        return {"message": "modified % s" % quiz_id}, 200
Пример #22
0
    def post(self):
        session = authorize(request.headers["Authorization"])

        quiz_input = creation_parser.parse_args()
        quiz = Quiz.quiz_from_dict(quiz_input)
        quiz.creationDate = datetime.now()
        quiz.createdBy = session.get('user').get('login')
        """ we create the quiz first """
        quiz._id = int(get_id("quiz"))
        print "\n", quiz.format()
        mongo.db.quiz.insert(quiz.format())
        """ we create questions as objects and we embbed them into the quiz"""
        for qst in quiz.questions:
            self.add_question(qst, quiz)

        return {"quiz_id": "%s" % (quiz._id)}, 201
Пример #23
0
    def post(self, group_name=None):
        session = authorize(request.headers["Authorization"])
        print session

        contacts = post_parser.parse_args().get("contacts")
        if contacts is None:
            abort(403)

        if group_name is None: group_name = "default"

        new_contacts = 0
        existing_contact = 0
        for contact in contacts:
            print contact
            contact = Contact.contact_from_dict(contact)
            existing = mongo.db.contacts.find_one({"email": contact.email})

            if existing is None:
                contact._id = get_id("contacts")
                contact.creationDate = datetime.now()
                contact.createdBy = session.get("user").get("login")
                if contact.language is None:
                    contact.language = "fr"

                mongo.db.contacts.insert(contact.format())

                self.update_group(group_name, contact.createdBy, contact)

                new_contacts += 1
            else:
                existing_contact += 1
                contact = Contact.contact_from_dict(existing)
                self.update_group(group_name, contact.createdBy, contact)



        return {"inserted": new_contacts, "existing": existing_contact}, 200
Пример #24
0
 def post(self, pub_hash):
     self.parser.add_argument("Authorization", type=str, location='headers', required=True,
                              help="Authorization header missing")
     session = authorize(request.headers["Authorization"])
     print session
     print participation_parser.parse_args()