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 1 commit
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
31 changes: 13 additions & 18 deletions backend/editor/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,14 @@
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import FileResponse, JSONResponse

# Data model imports
# DB helper imports
from . import graph_db
from . import graph_db, models
from .entries import TaxonomyGraph

# Custom exceptions
from .exceptions import GithubBranchExistsError, GithubUploadError

# Data model imports
from . import models

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

# Setup logs
Expand Down Expand Up @@ -362,12 +360,12 @@ async def export_to_github(

@app.post("/{taxonomy_name}/{branch}/import", response_model=models.ImportFromGithubResponse)
async def import_from_github(
request: Request,
request: Request,
parameters: models.ImportFromGithubParameters,
):
"""
Get taxonomy from Product Opener GitHub repository

- **branch**: name of branch added by user
- **taxonomy**: name of the taxonomy added by user

Jagrutiti marked this conversation as resolved.
Show resolved Hide resolved
Expand Down Expand Up @@ -435,9 +433,7 @@ async def create_node(request: Request, parameters: models.CreateNodeParameters)


@app.post("/{taxonomy_name}/{branch}/entry/{entry}", response_model=models.EditEntryResponse)
async def edit_entry(
request: Request, parameters: models.EditEntryParameters
):
async def edit_entry(request: Request, parameters: models.EditEntryParameters):
"""
Editing an entry in a taxonomy.
New key-value pairs can be added, old key-value pairs can be updated.
Expand All @@ -446,14 +442,15 @@ async def edit_entry(
taxonomy = TaxonomyGraph(parameters.branch, parameters.taxonomy_name)
incoming_data = await request.json()
updated_entry = await taxonomy.update_nodes("ENTRY", parameters.entry, incoming_data)
print("jagruti")
print(updated_entry)
return updated_entry


@app.post("/{taxonomy_name}/{branch}/entry/{entry}/children", response_model=models.EditChildrenResponse)
async def edit_entry_children(
request: Request,
parameters: models.EditChildrenParameters
):
@app.post(
"/{taxonomy_name}/{branch}/entry/{entry}/children", response_model=models.EditChildrenResponse
)
async def edit_entry_children(request: Request, parameters: models.EditChildrenParameters):
"""
Editing an entry's children in a taxonomy.
New children can be added, old children can be removed.
Expand All @@ -465,10 +462,8 @@ async def edit_entry_children(
return updated_children


@app.post("/{taxonomy_name}/{branch}/synonym/{synonym}", response_model=models.EditSynonymResponse)
async def edit_synonyms(
request: Request, parameters: models.EditSynonymParameters
):
@app.post("/{taxonomy_name}/{branch}/synonym/{synonym}", response_model=models.EditSynonymResponse)
async def edit_synonyms(request: Request, parameters: models.EditSynonymParameters):
"""
Editing a synonym in a taxonomy.
New key-value pairs can be added, old key-value pairs can be updated.
Expand Down
36 changes: 18 additions & 18 deletions backend/editor/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
from typing import List

from fastapi import Query
from pydantic import BaseModel, BaseConfig, validate_arguments
from pydantic import BaseConfig, BaseModel

BaseConfig.arbitrary_types_allowed = True


class Marginal(BaseModel):
preceding_lines: List
preceding_lines: List = Query(description="A list of preceding lines")


class Header(Marginal):
Expand All @@ -23,51 +23,51 @@ class Footer(Marginal):

# Models for FastAPI

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

class Entry:
default = []
title: str
description: str
class CommonParameters(BaseModel):
Jagrutiti marked this conversation as resolved.
Show resolved Hide resolved
branch: str = Query(description="Name of the branch")
taxonomy_name: str = Query(description="Name of the taxonomy")


class Entry(CommonParameters):
entry: str = Query(description="Name of the entry")
id: str = Query(description="Id of the entry")


class ImportFromGithubParameters(CommonParameters):
pass


class ImportFromGithubResponse(BaseModel):
status: bool
status: bool = Query(description="Return true or false value")
Jagrutiti marked this conversation as resolved.
Show resolved Hide resolved


class CreateNodeParameters(CommonParameters):
pass


class EditEntryParameters(CommonParameters):
entry: str
entry: str = Query(description="Name of the entry")


class EditEntryResponse(BaseModel):
result: list[Entry] = Query(
default=[], title="Result of edited entry", description="Returns a list of Entry objects"
)
result: List[Entry]


class EditChildrenParameters(CommonParameters):
entry: str
entry: str = Query(description="Name of the entry")


class EditChildrenResponse(BaseModel):
result = []
result: List


class EditSynonymParameters(CommonParameters):
entry: str
entry: str = Query(description="Name of the entry")


class EditSynonymResponse(BaseModel):
result = []
result: List


class EditHeaderParameters(CommonParameters):
Expand Down