Skip to content

Connections management #1

Description

@bambooSocks

User stories:

  • As a Person, I want to be able to send a connection request to other Persons.
  • As a Person, I want to be able to delete (cancel) a connection request to other Persons.
  • As a Person with pending request, I want to be able to accept the pending request.
  • As a Person with pending request, I want to be able to decline the pending request.
  • As a Person, I want to be able to query my connections.
  • As a Person, I want to be able to query my connection requests.
  • As a Person, I want to be able to remove my connection.

Subtasks:

  • Model:
    • Create Person class
    • Create Connection class
    • Create ConnectionRequest class
  • Controllers:
    • Create ConnectionController class with endpoints:
      • GET /connections - query all Connections for a specified Person
      • DELETE /connections/{id} - delete Connection by id
      • GET /connections/requests - query all ConnectionRequests for a specified Person (both receiving and sending)
      • DELETE /connections/requests/{id} - delete ConnectionRequest by id (used for canceling and denying a request)
      • POST /connections/requests - create a ConnectionRequest (Person JSON)
      • POST /connections/requests/accept/{id} - accepts a pending ConnectionRequest
  • Repository:
    • Create ConnectionRepository class that can:
      • query Connections for a Person
      • create Connection and store it in the database
      • remove Connection from the database
    • Create ConnectionRequestRepository class that can:
      • query ConnectionRequests for a Person
      • create ConnectionRequest and store it in the database
      • remove ConnectionRequest from the database
  • Services:
    • ? Service to handle Person logic
    • Service to handle Connection logic
    • Service to handle ConnectionRequest logic

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions