Skip to content

Create Tag CRUD Routes and Connection Routes #2

Open
@bryanwong8

Description

@bryanwong8

Is your feature request related to a problem? Please describe.
We need to implement CRUD routes for Tags to allow them to be created, updated, deleted, and searched.

Describe the solution you'd like
Routes need to be created:

  • CreateTag - /api/tags POST
  • FetchTags - /api/tags GET
  • UpdateTag - /api/tags/<int:tag_id> PUT
  • DeleteTag - /api/tags/<int:tag_id> DEL
  • FetchTag - /api/tags/<int:tag_id> GET
  • FollowTag - /api/tags/<int:tag_id>/followers PUT

Routes/functions to implement/change
Should create a TagCrud class to implement the CRUD routes with Flask-Restful

  • TagCRUD will contain: FetchTag, UpdateTag, DeleteTag
  • Tags will contain: FetchTags, CreateTag
  • TagFollowers will contain: FollowTag
    example:
class ModelCRUD(Resource):
    def get(self):
    def post(self):
    def put(self):
    def delete(self):

Additional context

  • CreateTag: When creating a Tag, validate it with the TagFormSchema. Create a function called create_tag in utils.py in the tags folder. The function should create the Tag and return it. In the route call the create_tag function, add it to the db session and commit it. If successful, return:
{
	"message": "Tag successfully created"
}, 201
  • UpdateTag: Update a Tag by first validating the form data with the TagFormData schema. Query for the Tag by the id given in the route. Create a function called update_tag in utils.py in the tags folder it should take in the Tag and form data as parameters. The function should update the Tag's parameters. If successful, return:
    return:
{
	"message": "Tag successfully updated"
}, 200
  • DeleteTag: Query for the Tag by id. Use db.session.delete() to delete the object. If successful, return:
{
	"message": "Tag successfully deleted"
}, 200
  • FecthTag: Query for the Tag by id. Return the serialization with TagSchema.
  • FetchTags: Query for a maximum of 15 Tags and serialize and return it with TagsSchema
  • FollowTag: Add the current user from the User session to the Tag's users' column

Metadata

Metadata

Assignees

Labels

backendbackend featurestagingThis issues is in the staging branch

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions