implement all APIs

## What? Why?
Implement all APIs

## How was it tested


## Pre-deployment

- [ ] API is compatible with existing APIs and relevant standards (if applicable)
- [ ] PR contains breaking change
- [ ] PR contains unit tests
- [ ] PR contains integration tests (if suitable)
- [ ] PR passes all tests on Travis (sanity)
- [ ] PR is rebased against recent develop
- [ ] PR is squashed into one commit per logical change
- [ ] PR requires seeding after deployment (if applicable)
- [ ] All changes requested in review have been implemented
- [ ] PR requires QA
- [ ] PR has been QA'ed (if applicable)

## After-deployment

- [ ] Changes have been verified
- [ ] Seeding has been done (if applicable)

review: @danielgong 
cc: