Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: updated existing APIs to enable to generate OpenAPI documentation #157

Open
wants to merge 30 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
e6d36ef
feat: updated APIs to support fastAPIs
Jagrutiti Dec 25, 2022
2fbcc3d
Merge branch 'main' into change-to-enable-openapi-doc
Jagrutiti Dec 25, 2022
7efdf13
Update backend/editor/api.py
Jagrutiti Dec 26, 2022
41ab8fe
Update backend/editor/api.py
Jagrutiti Dec 26, 2022
2b40472
Update backend/editor/api.py
Jagrutiti Dec 26, 2022
29099f2
Update backend/editor/api.py
Jagrutiti Dec 26, 2022
8f5a1ee
Update backend/editor/api.py
Jagrutiti Dec 26, 2022
7870910
Update backend/editor/api.py
Jagrutiti Dec 26, 2022
a4d5071
fix: updated model names, and divided them into another file
Jagrutiti Dec 26, 2022
7d99530
Merge branch 'main' into change-to-enable-openapi-doc
alexgarel Jan 3, 2023
d39a28e
fix: clubbing all the common variable names in a class
Jagrutiti Jan 11, 2023
c2a34f2
fix: styling
Jagrutiti Jan 11, 2023
bde4c0f
fix: added Entry class
Jagrutiti Jan 15, 2023
8ed8b0a
fix: Styling
Jagrutiti Jan 15, 2023
9062c26
fix: added inheritance of common parameters
Jan 17, 2023
8e6e26e
update: adding query parameters to FastAPI documentation
Jan 17, 2023
16543d3
Merging main branch
Jan 25, 2023
ad1623b
Merge branch 'main' of https://github.com/Jagrutiti/taxonomy-editor i…
Jagrutiti Feb 4, 2023
ffa59fb
Merge branch 'main' of https://github.com/Jagrutiti/taxonomy-editor i…
Jagrutiti Feb 5, 2023
35d7678
updated code for open api
Jagrutiti Feb 5, 2023
ff7340d
Merge branch 'change-to-enable-openapi-doc' of https://github.com/Jag…
Jagrutiti Feb 5, 2023
e57c836
Update backend/editor/models.py
Jagrutiti Feb 7, 2023
eb2b3b0
updated syntax
Jagrutiti Feb 7, 2023
ff151e9
fixed the not a valid json error, added descriptions to parameters
Jagrutiti Feb 12, 2023
a7986e1
Merge branch 'main' into change-to-enable-openapi-doc
Jagrutiti Feb 12, 2023
603e686
removed unwanted print statement
Jagrutiti Feb 12, 2023
47e7422
Update backend/editor/models.py
Jagrutiti Feb 14, 2023
32ac074
update based on make checks
Jagrutiti Feb 14, 2023
00b8d4d
Merge branch 'change-to-enable-openapi-doc' of https://github.com/Jag…
Jagrutiti Feb 14, 2023
03d7603
updated to fix style
Jagrutiti Feb 14, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 48 additions & 19 deletions backend/editor/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,21 @@
from .exceptions import GithubBranchExistsError, GithubUploadError

# Data model imports
from .models import Footer, Header
from .models import (
CreateNodeParameters,
EditChildrenParameters,
EditChildrenResponse,
EditEntryParameters,
EditEntryResponse,
EditFooterParameters,
EditFooterResponse,
EditHeaderParameters,
EditHeaderResponse,
EditSynonymParameters,
EditSynonymResponse,
ImportFromGithubParameters,
ImportFromGithubResponse,
)

# ----------------------------------------------------------------------------#

Expand Down Expand Up @@ -309,7 +323,13 @@ async def export_to_github(


@app.post("/{taxonomy_name}/{branch}/import")
async def import_from_github(request: Request, branch: str, taxonomy_name: str):
async def import_from_github(
request: Request,
branch: str,
taxonomy_name: str,
Jagrutiti marked this conversation as resolved.
Show resolved Hide resolved
parameters: ImportFromGithubParameters,
response_model=ImportFromGithubResponse,
):
"""
Get taxonomy from Product Opener GitHub repository
"""
Expand All @@ -329,11 +349,11 @@ async def import_from_github(request: Request, branch: str, taxonomy_name: str):


@app.post("/{taxonomy_name}/{branch}/nodes")
async def create_node(request: Request, branch: str, taxonomy_name: str):
async def create_node(request: Request, parameters: CreateNodeParameters):
"""
Creating a new node in a taxonomy
"""
taxonomy = TaxonomyGraph(branch, taxonomy_name)
taxonomy = TaxonomyGraph(parameters.branch, parameters.taxonomy_name)
incoming_data = await request.json()
id = incoming_data["id"]
main_language = incoming_data["main_language"]
Expand All @@ -350,43 +370,51 @@ async def create_node(request: Request, branch: str, taxonomy_name: str):


@app.post("/{taxonomy_name}/{branch}/entry/{entry}")
async def edit_entry(request: Request, branch: str, taxonomy_name: str, entry: str):
async def edit_entry(
request: Request, parameters: EditEntryParameters, response_model=EditEntryResponse
):
"""
Editing an entry in a taxonomy.
New key-value pairs can be added, old key-value pairs can be updated.
URL will be of format '/entry/<id>'
"""
taxonomy = TaxonomyGraph(branch, taxonomy_name)
taxonomy = TaxonomyGraph(parameters.branch, parameters.taxonomy_name)
incoming_data = await request.json()
result = taxonomy.update_nodes("ENTRY", entry, incoming_data)
result = taxonomy.update_nodes("ENTRY", parameters.entry, incoming_data)
updated_entry = list(result)
return updated_entry


@app.post("/{taxonomy_name}/{branch}/entry/{entry}/children")
async def edit_entry_children(request: Request, branch: str, taxonomy_name: str, entry: str):
async def edit_entry_children(
request: Request,
parameters: EditChildrenParameters,
response_model=EditChildrenResponse,
):
"""
Editing an entry's children in a taxonomy.
New children can be added, old children can be removed.
URL will be of format '/entry/<id>/children'
"""
taxonomy = TaxonomyGraph(branch, taxonomy_name)
taxonomy = TaxonomyGraph(parameters.branch, parameters.taxonomy_name)
incoming_data = await request.json()
result = taxonomy.update_node_children(entry, incoming_data)
result = taxonomy.update_node_children(parameters.entry, incoming_data)
updated_children = list(result)
return updated_children


@app.post("/{taxonomy_name}/{branch}/synonym/{synonym}")
async def edit_synonyms(request: Request, branch: str, taxonomy_name: str, synonym: str):
async def edit_synonyms(
request: Request, parameters: EditSynonymParameters, response_model=EditSynonymResponse
):
"""
Editing a synonym in a taxonomy.
New key-value pairs can be added, old key-value pairs can be updated.
URL will be of format '/synonym/<id>'
"""
taxonomy = TaxonomyGraph(branch, taxonomy_name)
taxonomy = TaxonomyGraph(parameters.branch, parameters.taxonomy_name)
incoming_data = await request.json()
result = taxonomy.update_nodes("SYNONYMS", synonym, incoming_data)
result = taxonomy.update_nodes("SYNONYMS", parameters.synonym, incoming_data)
updated_synonym = list(result)
return updated_synonym

Expand All @@ -406,24 +434,25 @@ async def edit_stopwords(request: Request, branch: str, taxonomy_name: str, stop


@app.post("/{taxonomy_name}/{branch}/header")
async def edit_header(incoming_data: Header, branch: str, taxonomy_name: str):
async def edit_header(parameters: EditHeaderParameters, response_model: EditHeaderResponse):
"""
Editing the __header__ in a taxonomy.
"""
taxonomy = TaxonomyGraph(branch, taxonomy_name)
convertedData = incoming_data.dict()
taxonomy = TaxonomyGraph(parameters.branch, parameters.taxonomy_name)
convertedData = parameters.incoming_data.dict()

result = taxonomy.update_nodes("TEXT", "__header__", convertedData)
updated_header = list(result)
return updated_header


@app.post("/{taxonomy_name}/{branch}/footer")
async def edit_footer(incoming_data: Footer, branch: str, taxonomy_name: str):
async def edit_footer(parameters: EditFooterParameters, response_model: EditFooterResponse):
"""
Editing the __footer__ in a taxonomy.
"""
taxonomy = TaxonomyGraph(branch, taxonomy_name)
convertedData = incoming_data.dict()
taxonomy = TaxonomyGraph(parameters.branch, parameters.taxonomy_name)
convertedData = parameters.incoming_data.dict()
result = taxonomy.update_nodes("TEXT", "__footer__", convertedData)
updated_footer = list(result)
return updated_footer
Expand Down
75 changes: 75 additions & 0 deletions backend/editor/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,78 @@ class Header(Marginal):

class Footer(Marginal):
pass


# Models for FastAPI


class CommonParameters:
branch = "branch"
taxonomy_name = "taxonomy_name"


parameters = CommonParameters()


class ImportFromGithubParameters(BaseModel):
parameters.parameters.branch: str
parameters.parameters.taxonomy_name: str


class ImportFromGithubResponse(BaseModel):
status: str


class CreateNodeParameters(BaseModel):
parameters.parameters.branch: str
parameters.parameters.taxonomy_name: str


class EditEntryParameters(BaseModel):
parameters.branch: str
parameters.taxonomy_name: str
entry: str


class EditEntryResponse(BaseModel):
result = []
Jagrutiti marked this conversation as resolved.
Show resolved Hide resolved


class EditChildrenParameters(BaseModel):
parameters.branch: str
parameters.taxonomy_name: str
entry: str


class EditChildrenResponse(BaseModel):
result = []


class EditSynonymParameters(BaseModel):
parameters.branch: str
parameters.taxonomy_name: str
entry: str


class EditSynonymResponse(BaseModel):
result = []


class EditHeaderParameters(BaseModel):
incoming_data: Header
parameters.branch: str
parameters.taxonomy_name: str


class EditHeaderResponse(BaseModel):
result: []


class EditFooterParameters(BaseModel):
incoming_data: Footer
parameters.branch: str
parameters.taxonomy_name: str


class EditFooterResponse(BaseModel):
Jagrutiti marked this conversation as resolved.
Show resolved Hide resolved
result: []
Jagrutiti marked this conversation as resolved.
Show resolved Hide resolved
1 change: 0 additions & 1 deletion taxonomy-editor-frontend/build/.empty

This file was deleted.