Modify response for POST /{source}/:id/members API and /{source}/:id/invitations for promotion scenario
Adds a member to a source (doc) (code) (supports multiple members)
- POST /groups/:id/members
- POST /projects/:id/members
- Returns a member json
TODO: Need to validate and return a meaningful response when member gets queued.
And
- POST /groups/:id/invitations
- POST /projects/:id/invitations
- Returns success:true, or errors
TODO: Need to validate and return a meaningful response when member gets queued.
Proposed response change:
As shared here,
For API
- POST /groups/:id/invitations
- POST /projects/:id/invitations
Existing Response
When single or multiple members are passed
Here there are three possible scenarios:
- All created [api returns success]
- All errored [api returns error]
- Some created, some errored [api returns error]
| success | partial or full failure |
|---|---|
|
http status: 201 { status: success } |
http status: 201 { status: error, message: {username1: error_msg, username2: error_msg..} } |
For Queued Scenario:
When single or multiple members are passed
Here we can have three scenarios:
- All created [api returns success] same as now
- All queued [api returns queued]
- Partial queued, and partial created [api returns queued]
- Some errors and some queued + some created [api returns error]
- same as now
| All or partial queued |
|---|
|
http status: 201 { status: queued, queued_users: [username1, username2] } |
For API
- POST /groups/:id/members
- POST /projects/:id/members
Existing Response
When single member is passed
| success | failure |
|---|---|
|
http status: 201 { member object } |
http status: 400 { message : { 'base' => [error_msg] } } |
When multiple members are passed
Here there are three possible scenarios:
- All created [api returns success]
- All errored [api returns error]
- Some created, some errored [api returns error]
| success | partial or full failure |
|---|---|
|
http status: 201 { status: success } |
http status: 201 { status: error, message: {username1: error_msg, username2: error_msg..} } |
For Queued Scenario:
When single member is passed
| successfully queued |
|---|
|
http status: 202 { message: "Request was queued for Admin" } |
When multiple members is passed
Here we can have three scenarios:
- All created [api returns success] same as now
- All queued [api returns queued]
- Partial queued, and partial created [api returns queued]
- Some errors and some queued + some created [api returns error]
- same as now
| All or partial queued |
|---|
|
http status: 201 { status: queued, queued_users: [username1, username2] } |
Implementation
Update API and docs to account for non-billable... (!167020 - merged)