def create_labels(course_id): """ Adds a label to a course. """ data = request.get_json() if data is None: return Iresponse.create_response("", 404) name = data["name"] labelid = uuid.uuid4() exist_label = Label.query.filter_by(label_name=name).all() if exist_label: return Iresponse.create_response("", 200) course = Course.query.get(course_id) if course is None: return Iresponse.create_response("", 404) new_label = Label() new_label.label_name = name new_label.label_id = labelid new_label.course = course if not database.addItemSafelyToDB(new_label): return Iresponse.internal_server_error() database.db.session.commit() return Iresponse.create_response("", 200)
def create_request(json_data): """ Function that handles the create request for a ticket. """ name = escape(json_data["name"]) name = name # flake8 studentid = escape(json_data["studentid"]) email = escape(json_data["email"]) subject = escape(json_data["subject"]) message = escape(json_data["message"]) courseid = escape(json_data["courseid"]) labelid = escape(json_data["labelid"]) files = json_data['files'] response_body = {} bound_tas = list() label = None if labelid != "": label = Label.query.get(uuid.UUID(labelid)) bound_tas = get_label_tas(label, studentid) if len(bound_tas) < 1: status_id = TicketStatus.unassigned else: status_id = TicketStatus.waiting_for_help ticket = Ticket(id=uuid.uuid4(), user_id=studentid, course_id=courseid, status_id=status_id, title=subject, email=email, label=label, files=files, timestamp=datetime.now()) for ta in bound_tas: ticket.bound_tas.append(ta) level_up = levels.add_experience(levels.EXP_FOR_ASSING, ta.id) levels.notify_level_change(ta.id, ticket, level_up) if not database.addItemSafelyToDB(ticket): return Iresponse.internal_server_error() try: msg = notifications.notify(studentid, ticket, message, Message.NTFY_TYPE_MESSAGE) msg = msg except Exception as e: raise e return Iresponse.create_response(str(e), 400) response_body['ticketid'] = ticket.id response = Iresponse.create_response(response_body, 201) response.headers.add('Location', 'api/ticket/{0}'.format(ticket.id)) return response
def remove_label(label_id): """ Function that removes a label. """ label = Label.query.get(label_id) print(label) if label is None: return Iresponse.create_response("", 404) if not database.deleteSafelyFromDB(label, remove_label): return Iresponse.internal_server_error() return Iresponse.create_response("", 202)
def delete_request(note_id): """ Process the request to delete a note. """ note = Note.query.get(note_id) if note is None: return Iresponse.create_response("", 404) try: levels.deduct_experience(levels.EXP_FOR_NOTE, note.user_id) database.db.session.delete(note) database.db.session.commit() except Exception: print("LOG: Deleting error") return Iresponse.internal_server_error() return Iresponse.create_response("", 202)
def create_request(jsonData): """ Function that handles the create request for a course. """ mail = escape(jsonData['mail']) title = escape(jsonData['title']) description = escape(jsonData['description']) course = Course() course.id = uuid.uuid4() course.course_email = mail course.title = title course.description = description if not database.addItemSafelyToDB(course): return Iresponse.internal_server_error() return Iresponse.create_response("", 200)
def create_request(jsonData): """ Process the request to create a node. """ ticket_id = escape(jsonData["ticket_id"]) user_id = escape(jsonData["user_id"]) message = escape(jsonData["text"]) response_body = {} if message == '': response_body['message'] = "empty message" if ticket_id == '': response_body['ticket_id'] = "No ticket id has been supplied" if user_id == '': response_body['user_id'] = "No user id has been supplieds" ticket = Ticket.query.get(ticket_id) if ticket is None: response_body['ticket'] = "No ticket exists with this id" if len(response_body) != 0: return Iresponse.create_response(response_body, 400) note = Note() note.id = uuid.uuid4() note.user_id = user_id note.ticket_id = ticket_id note.text = message note.timestamp = datetime.now() if not database.addItemSafelyToDB(note): return Iresponse.internal_server_error() parse_note(message, ticket) levels.add_experience(levels.EXP_FOR_NOTE, note.user_id) # add header location. return Iresponse.create_response(note.serialize, 201)
def register_user(json_data): email = escape(json_data["email"]) name = escape(json_data["name"]) studentid = int(escape(json_data["studentid"])) password = escape(json_data["password"]) repassword = escape(json_data["password_confirmation"]) validated = validate_userdata(email, name, studentid, password, repassword) if validated != '': return Iresponse.create_response({"status": validated}, 200) # Backend check if email/studentid already exists user = User.query.filter_by(email=email).first() if user: return Iresponse.create_response({"status": "Email is taken"}, 200) studentid = json_data["studentid"] user = User.query.filter_by(id=studentid).first() if user: return Iresponse.create_response({"status": "Studentid taken"}, 200) new_user = User() salt = bcrypt.gensalt() hashedpsw = bcrypt.hashpw(password.encode('utf-8'), salt) new_user.password = hashedpsw new_user.id = studentid new_user.name = name new_user.email = email new_user.level = 1 new_user.experience = 1 if not database.addItemSafelyToDB(new_user): return Iresponse.internal_server_error() return Iresponse.create_response({"status": "OK"}, 201)