Assignment Contact Tracking Repository
API Contract
REST
/api/v1/assignments
7 endpoints
GET
/api/v1/assignments/api/v1/assignments
List all open assignments with their last contact dates
Public
Response Example
{
"data": [
{
"assignment_id": "asgn_001",
"mentee_name": "Lars Eriksson",
"peer_mentor_id": "user_042",
"status": "active",
"last_contact_date": "2026-03-10T14:30:00Z",
"days_since_contact": 16,
"created_at": "2026-01-15T09:00:00Z"
},
{
"assignment_id": "asgn_002",
"mentee_name": "Ingrid Halvorsen",
"peer_mentor_id": "user_019",
"status": "active",
"last_contact_date": null,
"days_since_contact": null,
"created_at": "2026-02-20T11:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 47
}
}
GET
/api/v1/assignments/api/v1/assignments/:id
Get a single assignment with contact date details
Public
Response Example
{
"assignment_id": "asgn_001",
"mentee_name": "Lars Eriksson",
"peer_mentor_id": "user_042",
"coordinator_id": "user_007",
"org_id": "org_03",
"status": "active",
"last_contact_date": "2026-03-10T14:30:00Z",
"days_since_contact": 16,
"reminder_sent_at": "2026-03-18T08:00:00Z",
"escalation_sent_at": null,
"created_at": "2026-01-15T09:00:00Z",
"updated_at": "2026-03-18T08:00:01Z"
}
POST
/api/v1/assignments/api/v1/assignments
Create a new assignment
Public
Request Example
{
"mentee_id": "user_088",
"peer_mentor_id": "user_042",
"coordinator_id": "user_007",
"org_id": "org_03",
"start_date": "2026-03-26"
}
Response Example
{
"assignment_id": "asgn_048",
"mentee_name": "Bjørn Solberg",
"peer_mentor_id": "user_042",
"status": "active",
"last_contact_date": null,
"created_at": "2026-03-26T10:00:00Z"
}
PUT
/api/v1/assignments/api/v1/assignments/:id
Update assignment details or status
Public
Request Example
{
"status": "completed",
"peer_mentor_id": "user_055"
}
Response Example
{
"assignment_id": "asgn_001",
"status": "completed",
"peer_mentor_id": "user_055",
"updated_at": "2026-03-26T10:05:00Z"
}
DELETE
/api/v1/assignments/api/v1/assignments/:id
Delete an assignment
Public
Response Example
{
"deleted": true,
"assignment_id": "asgn_001"
}
PUT
/api/v1/assignments/api/v1/assignments/:id/last-contact
Update the last contact date for an assignment
Public
Request Example
{
"contact_date": "2026-03-26T09:45:00Z",
"contact_type": "message"
}
Response Example
{
"assignment_id": "asgn_001",
"last_contact_date": "2026-03-26T09:45:00Z",
"days_since_contact": 0,
"updated_at": "2026-03-26T09:45:01Z"
}
GET
/api/v1/assignments/api/v1/assignments/overdue
List assignments with no contact since a cutoff date
Public
Response Example
{
"data": [
{
"assignment_id": "asgn_002",
"mentee_name": "Ingrid Halvorsen",
"peer_mentor_id": "user_019",
"last_contact_date": null,
"days_since_contact": null
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 3
}
}