Update to the /organization resource
This is what I think we need in order to implement all the features from our mockups: #117 (closed)
[GET] /organization
Get member information based on the current logged in user. I.e, I am an employee of IBM, I get information about IBM. Require Authentication. Note that this URI does not include the s.
Based off the work we did here: https://api.eclipse.org/public/member
However, creating a proxy won’t scale here as we soon need to migrate off Drupal 7. I implemented this as a temporary solution. With REM, I expect us to use our Foundation DB Api to fetch/update member information.
{
"id":656,
"name":"IBM",
"description":{
"short":"Rational software from IBM helps organizations create business value by improving their software development capability. ",
"full":"<b>IBM and Eclipse</b>\r\n<br>\r\nIBM is proud to be among the founders of the Eclipse project. Beginning in 2001, both IBM and Rational Software were founding members of the Eclipse consortium and the not for profit Eclipse Foundation. Rational Software was acquired by IBM in 2003, and today IBM Rational continues as a Strategic Member of the Eclipse Foundation.\r\n<br><br>\r\nEclipse continues to be core to dozens of IBM offerings from Rational, WebSphere, Lotus, Tivoli, and Information Management. IBM Rational software provides an Eclipse-based software development platform that improves the speed, quality, and predictability of software projects. This full life-cycle solution combines software engineering best practices, market-leading tools, and services.<br><br>\r\n\r\n<b>The Rational Software Delivery Platform</b>\r\n<br>\r\nThe Rational Software Delivery Platform helps align all aspects of development and engineering operations with business needs. This highly collaborative environment supports IT as well as systems engineering efforts, and spans the entire project lifecycle with a complete, integrated set of products, services, and best practices.\r\n<br><br>\r\nA key component of the Rational portfolio is Jazz, a technology platform for collaborative software delivery. Uniquely attuned to global and distributed teams, the Jazz platform is designed to transform how people work together to build software -- making software delivery more collaborative, productive, and transparent.\r\n<br><br>\r\nThe IBM Rational Software Development Platform is the industry\\'s most complete, open, standards-based software development environment, and it enables our clients to more easily govern their software and systems development and delivery. <b>Ninety-three of the Fortune Top 100 companies use Rational software.</b>\r\n<br><br>\r\nAdditional information is available at <a href=\\\"http://www.ibm.com/rational\\\">ibm.com/rational</a>"
},
"logos":{
"small":"https://api.eclipse.org/sites/default/files/logos/members/656-sm.gif",
"full":"https://api.eclipse.org/sites/default/files/logos/members/656-lg.gif"
},
"membership_level":{
"level":"SD",
"description":"Strategic Member"
},
"website":"http://www.ibm.com",
}
[GET] /organizations
List of members Public
[GET] /organizations/:id
Information about a specific member Public
[PUT] /organizations/:id
Update a member Restricted to users with CR relations. Other roles might be added later.
204 - No Content when update is successful or 200 if we prefer to return the entity 401 - Unauthorized if the user is not logged in 403 - Forbidden if the user does not have the required roles
[GET] /organizations/:id/contact?role=EM&fname=chris&lname=guind&mail=chris.guindon
List of all contacts. Ability to search name and email without the exact value. Role must be exact. Restricted to users with CR relations. Other roles might be added later.
200 - ok 401 - Unauthorized if the user is not logged in 403 - Forbidden if the user does not have the required roles
[GET] /organizations/:id/contact/:username
Contact information about a specific user within an organization Restricted to users with CR relations. Other roles might be added later.
200 - ok 401 - Unauthorized if the user is not logged in 403 - Forbidden if the user does not have the required roles
[GET] /organizations/:id/contact/:username/:relation
Validate if a particular user has a specific role/relation within an organization. Restricted to users with CR relations. Other roles might be added later.
200 - ok 404 - Not Found 401 - Unauthorized if the user is not logged in 403 - Forbidden if the user does not have the required roles
[PUT] /organizations/:id/contact/:username/mr
Create/Update an organization contact relation {DocumentID, Comments, Title} Restricted to users with CR relations. Other roles might be added later.
204 - No Content when update is successful or 200 if we prefer to return the entity 401 - Unauthorized if the user is not logged in 403 - Forbidden if the user does not have the required roles
[DELETE] /organizations/:id/contact/:username/:relation
Delete organization contact relation {DocumentID, Comments, Title} Restricted to users with CR relations. Other roles might be added later.
204 - No Content when update is successful or 200 if we prefer to return the entity 401 - Unauthorized if the user is not logged in 403 - Forbidden if the user does not have the required roles
[GET] /organizations/:id/committers
List of all committers Restricted to users with CR relations. Other roles might be added later.
200 - ok 401 - Unauthorized if the user is not logged in 403 - Forbidden if the user does not have the required roles
[GET] /organizations/:id/contributors
List of all contributors. Users associated with a member but are not committers Restricted to users with CR relations. Other roles might be added later.
200 - ok 401 - Unauthorized if the user is not logged in 403 - Forbidden if the user does not have the required roles
[GET] /organizations/:id/projects
List of all projects that the member has committers on Public
[GET] /organizations/:id/working_groups
List of all wg that the member is participating in Public
[GET] /organizations/:id/activity
List of the data from dashboard.CompanyActivity. (number of commits per week & number of committers per week). Public
[GET] /organizations/:id/country
The number of committers per country, This API will expose the CommitterAffiliation data: Public
SELECT c.country, count(c.country) as count FROM CommitterAffiliation as a
inner join Committer as c on c.id = a.id
where orgId = 656 and country is not null
GROUP BY c.country
order by count desc
[GET] /members/:id/resource_pack
Proxy for https://foundation.eclipse.org/infrazilla/show_bug.cgi?id=4123. However, we might simply use the API as-is once-ready. Public