Skip to content

Connections management #1

@bambooSocks

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

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