Skip to content

Commit

Permalink
Merge pull request #23 from SELab-2/backend/feature/root-endpoint
Browse files Browse the repository at this point in the history
Fix #22
  • Loading branch information
Gerwoud authored Feb 24, 2024
2 parents 4991b3f + c3dd7b4 commit b3b3f6c
Show file tree
Hide file tree
Showing 8 changed files with 80 additions and 30 deletions.
2 changes: 1 addition & 1 deletion backend/project/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from .endpoints.index import index_bp
from .endpoints.index.index import index_bp

db = SQLAlchemy()

Expand Down
23 changes: 0 additions & 23 deletions backend/project/endpoints/index.py

This file was deleted.

45 changes: 45 additions & 0 deletions backend/project/endpoints/index/OpenAPI_Object.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"openapi": "3.1.0",
"info": {
"title": "Pigeonhole API",
"summary": "A project submission and grading API for University Ghent students and professors.",
"description": "The API built for the Pigeonhole application. It serves as an interface for student of University Ghent. They can submit solutions to projects created by their professors. Professors and their assistents can then review these submitions, grade them and define custom tests that automatically run on every submition. The API is built using the OpenAPI 3.1.0 specification.",
"version": "1.0.0",
"contact": {
"name": "Project discussion forum",
"url": "https://github.com/SELab-2/UGent-opgave/discussions",
"email": "[email protected]"
},
"x-authors": [
{
"name": "Aron Buzogany",
"github": "https://github.com/AronBuzogany"
},
{
"name": "Gerwoud Van den Eynden",
"github": "https://github.com/Gerwoud"
},
{
"name": "Jarne Clauw",
"github": "https://github.com/JarneClauw"
},
{
"name": "Siebe Vlietinck",
"github": "https://github.com/Vucis"
},
{
"name": "Warre Provoost",
"github": "https://github.com/warreprovoost"
},
{
"name": "Cedric Mekeirle",
"github": "https://github.com/JibrilExe"
},
{
"name": "Matisse Sulzer",
"github": "https://github.com/Matisse-Sulzer"
}
]
},
"paths": []
}
21 changes: 21 additions & 0 deletions backend/project/endpoints/index/index.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
"""Index api point"""
import os
from flask import Blueprint, send_from_directory
from flask_restful import Resource, Api

index_bp = Blueprint("index", __name__)
index_endpoint = Api(index_bp)

class Index(Resource):
"""Api endpoint for the / route"""

def get(self):
"""
Example of an api endpoint function that will respond to get requests made to
return a json data structure with key Message and value Hello World!
"""
dir_path = os.path.dirname(os.path.realpath(__file__))
return send_from_directory(dir_path, "OpenAPI_Object.json")


index_bp.add_url_rule("/", view_func=Index.as_view("index"))
Empty file.
File renamed without changes.
13 changes: 13 additions & 0 deletions backend/tests/endpoints/index_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
"""Test the base routes of the application"""

def test_home(client):
"""Test whether the index page is accesible"""
response = client.get("/")
assert response.status_code == 200

def test_openapi_spec(client):
"""Test whether the required fields of the openapi spec are present"""
response = client.get("/")
response_json = response.json
assert response_json["openapi"] is not None
assert response_json["info"] is not None
6 changes: 0 additions & 6 deletions backend/tests/test_base.py

This file was deleted.

0 comments on commit b3b3f6c

Please sign in to comment.