Skip to content
Snippets Groups Projects
Commit 74f21b61 authored by Robert Goldmann's avatar Robert Goldmann
Browse files

Fixed #26 - replace default Date with "-" in milestones

parent ac0534d5
No related branches found
No related tags found
No related merge requests found
from datetime import datetime, date
class DateFormatter:
DEFAULT_DATE = date(2000, 1, 1)
FORMAT = "%d.%m.%Y"
@staticmethod
def format(dateObject):
if dateObject == DateFormatter.DEFAULT_DATE:
return "-"
return datetime.strftime(dateObject, DateFormatter.FORMAT)
......@@ -3,6 +3,7 @@ from enum import Enum
from flask import Blueprint, jsonify, request
from flask_jwt_extended import jwt_required
from DateFormatter import DateFormatter
from RequestValidator import RequestValidator, ValidationError
......@@ -21,24 +22,42 @@ class MilestoneParameters(Enum):
return [m.value for m in MilestoneParameters]
def prepare_milestone(milestone):
milestone[MilestoneParameters.DUE_DATE.value] = DateFormatter.format(
milestone[MilestoneParameters.DUE_DATE.value])
milestone[MilestoneParameters.COMPLETION_DATE.value] = DateFormatter.format(
milestone[MilestoneParameters.COMPLETION_DATE.value])
return milestone
def construct_blueprint(database):
milestone_api = Blueprint('milestone_api', __name__)
@milestone_api.route('/milestones/<int:roadmapID>', methods=['GET'])
def get_milestones(roadmapID):
return jsonify(database.get_milestones(roadmapID))
milestones = database.get_milestones(roadmapID)
results = []
for m in milestones.json:
results.append(prepare_milestone(m))
return jsonify(results)
@milestone_api.route('/milestones/<int:roadmapID>/open', methods=['GET'])
def get_open_milestones(roadmapID):
return jsonify(database.get_open_milestones(roadmapID))
milestones = database.get_open_milestones(roadmapID)
results = []
for m in milestones:
results.append(prepare_milestone(m))
return jsonify(results)
@milestone_api.route('/milestones/<int:roadmapID>/latest', methods=['GET'])
def get_latest_milestone(roadmapID):
return jsonify(database.get_latest_milestone(roadmapID))
milestone = database.get_latest_milestone(roadmapID)
return jsonify(prepare_milestone(milestone))
@milestone_api.route('/milestone/<int:milestoneID>', methods=['GET'])
def get_milestone(milestoneID):
return jsonify(database.get_milestone(milestoneID))
milestone = database.get_milestone(milestoneID)
return jsonify(prepare_milestone(milestone))
@milestone_api.route('/milestone', methods=['POST'])
@jwt_required
......
......@@ -4,10 +4,9 @@ from enum import Enum
from flask import Blueprint, jsonify, request
from flask_jwt_extended import jwt_required
from DateFormatter import DateFormatter
from RequestValidator import RequestValidator, ValidationError
DEFAULT_DATE = date(2000, 1, 1)
class RoadmapParameters(Enum):
ID = "ID"
......@@ -26,21 +25,14 @@ def construct_blueprint(database):
return jsonify(database.get_roadmap(roadmapID))
@roadmap_api.route('/roadmap/<int:roadmapID>/full', methods=['GET'])
def get_roadmap_fast(roadmapID):
def get_roadmap_full(roadmapID):
roadmap = database.get_roadmap(roadmapID)
roadmap["milestones"] = database.get_milestones(roadmapID)
numberOfOpenMilestones = 0
for milestone in roadmap["milestones"]:
if milestone["DueDate"] == DEFAULT_DATE:
milestone["DueDate"] = "-"
else:
milestone["DueDate"] = datetime.strftime(milestone["DueDate"], "%d.%m.%Y")
if milestone["CompletionDate"] == DEFAULT_DATE:
milestone["CompletionDate"] = "-"
else:
milestone["CompletionDate"] = datetime.strftime(milestone["CompletionDate"], "%d.%m.%Y")
milestone["DueDate"] = DateFormatter.format(milestone["DueDate"])
milestone["CompletionDate"] = DateFormatter.format(milestone["CompletionDate"])
if milestone["Status"] == 0:
numberOfOpenMilestones += 1
......@@ -91,7 +83,8 @@ def construct_blueprint(database):
@jwt_required
def update_roadmap():
try:
parameters = RequestValidator.validate(request, [RoadmapParameters.ID.value, RoadmapParameters.PROJECT_NAME.value])
parameters = RequestValidator.validate(request,
[RoadmapParameters.ID.value, RoadmapParameters.PROJECT_NAME.value])
except ValidationError as e:
return e.response, 400
......@@ -102,7 +95,8 @@ def construct_blueprint(database):
if __name_already_used(parameters[RoadmapParameters.PROJECT_NAME.value]):
return jsonify({"success": False, "msg": "A roadmap with this name already exists"}), 400
database.update_roadmap(parameters[RoadmapParameters.ID.value], parameters[RoadmapParameters.PROJECT_NAME.value])
database.update_roadmap(parameters[RoadmapParameters.ID.value],
parameters[RoadmapParameters.PROJECT_NAME.value])
return jsonify({"success": True})
def __roadmaps_exists(roadmapID):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment