Server: allow user to get its informations (/users/me)
This commit is contained in:
parent
6606150c49
commit
99a64bfed2
|
@ -19,6 +19,7 @@ const Video = mongoose.model('Video')
|
||||||
const router = express.Router()
|
const router = express.Router()
|
||||||
|
|
||||||
router.get('/', listUsers)
|
router.get('/', listUsers)
|
||||||
|
router.get('/me', oAuth.authenticate, getUserInformation)
|
||||||
|
|
||||||
router.post('/',
|
router.post('/',
|
||||||
oAuth.authenticate,
|
oAuth.authenticate,
|
||||||
|
@ -63,6 +64,14 @@ function createUser (req, res, next) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getUserInformation (req, res, next) {
|
||||||
|
User.loadByUsername(res.locals.oauth.token.user.username, function (err, user) {
|
||||||
|
if (err) return next(err)
|
||||||
|
|
||||||
|
return res.json(user.toFormatedJSON())
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
function listUsers (req, res, next) {
|
function listUsers (req, res, next) {
|
||||||
User.list(function (err, usersList) {
|
User.list(function (err, usersList) {
|
||||||
if (err) return next(err)
|
if (err) return next(err)
|
||||||
|
|
|
@ -504,6 +504,8 @@ describe('Test parameters validator', function () {
|
||||||
|
|
||||||
describe('Of the users API', function () {
|
describe('Of the users API', function () {
|
||||||
const path = '/api/v1/users/'
|
const path = '/api/v1/users/'
|
||||||
|
let userId = null
|
||||||
|
let userAccessToken = null
|
||||||
|
|
||||||
describe('When adding a new user', function () {
|
describe('When adding a new user', function () {
|
||||||
it('Should fail with a too small username', function (done) {
|
it('Should fail with a too small username', function (done) {
|
||||||
|
@ -580,19 +582,19 @@ describe('Test parameters validator', function () {
|
||||||
utils.loginAndGetAccessToken(server, function (err, accessToken) {
|
utils.loginAndGetAccessToken(server, function (err, accessToken) {
|
||||||
if (err) throw err
|
if (err) throw err
|
||||||
|
|
||||||
|
userAccessToken = accessToken
|
||||||
|
|
||||||
const data = {
|
const data = {
|
||||||
username: 'user2',
|
username: 'user2',
|
||||||
password: 'my super password'
|
password: 'my super password'
|
||||||
}
|
}
|
||||||
|
|
||||||
makePostBodyRequest(path, accessToken, data, done, 403)
|
makePostBodyRequest(path, userAccessToken, data, done, 403)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('When updating a user', function () {
|
describe('When updating a user', function () {
|
||||||
let userId = null
|
|
||||||
|
|
||||||
before(function (done) {
|
before(function (done) {
|
||||||
utils.getUsersList(server.url, function (err, res) {
|
utils.getUsersList(server.url, function (err, res) {
|
||||||
if (err) throw err
|
if (err) throw err
|
||||||
|
@ -607,7 +609,7 @@ describe('Test parameters validator', function () {
|
||||||
password: 'bla'
|
password: 'bla'
|
||||||
}
|
}
|
||||||
|
|
||||||
makePutBodyRequest(path + '/' + userId, server.accessToken, data, done)
|
makePutBodyRequest(path + userId, userAccessToken, data, done)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should fail with a too long password', function (done) {
|
it('Should fail with a too long password', function (done) {
|
||||||
|
@ -617,7 +619,7 @@ describe('Test parameters validator', function () {
|
||||||
'very very very very very very very very very very very very very very very very very very very very long'
|
'very very very very very very very very very very very very very very very very very very very very long'
|
||||||
}
|
}
|
||||||
|
|
||||||
makePutBodyRequest(path + '/' + userId, server.accessToken, data, done)
|
makePutBodyRequest(path + userId, userAccessToken, data, done)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should fail with an non authenticated user', function (done) {
|
it('Should fail with an non authenticated user', function (done) {
|
||||||
|
@ -625,7 +627,7 @@ describe('Test parameters validator', function () {
|
||||||
password: 'my super password'
|
password: 'my super password'
|
||||||
}
|
}
|
||||||
|
|
||||||
makePutBodyRequest(path + '/' + userId, 'super token', data, done, 401)
|
makePutBodyRequest(path + userId, 'super token', data, done, 401)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should succeed with the correct params', function (done) {
|
it('Should succeed with the correct params', function (done) {
|
||||||
|
@ -633,7 +635,25 @@ describe('Test parameters validator', function () {
|
||||||
password: 'my super password'
|
password: 'my super password'
|
||||||
}
|
}
|
||||||
|
|
||||||
makePutBodyRequest(path + '/' + userId, server.accessToken, data, done, 204)
|
makePutBodyRequest(path + userId, userAccessToken, data, done, 204)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('When getting my information', function () {
|
||||||
|
it('Should fail with a non authenticated user', function (done) {
|
||||||
|
request(server.url)
|
||||||
|
.get(path + 'me')
|
||||||
|
.set('Authorization', 'Bearer faketoken')
|
||||||
|
.set('Accept', 'application/json')
|
||||||
|
.expect(401, done)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('Should success with the correct parameters', function (done) {
|
||||||
|
request(server.url)
|
||||||
|
.get(path + 'me')
|
||||||
|
.set('Authorization', 'Bearer ' + userAccessToken)
|
||||||
|
.set('Accept', 'application/json')
|
||||||
|
.expect(200, done)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -179,6 +179,19 @@ describe('Test users', function () {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('Should be able to get the user informations', function (done) {
|
||||||
|
utils.getUserInformation(server.url, accessTokenUser, function (err, res) {
|
||||||
|
if (err) throw err
|
||||||
|
|
||||||
|
const user = res.body
|
||||||
|
|
||||||
|
expect(user.username).to.equal('user_1')
|
||||||
|
expect(user.id).to.exist
|
||||||
|
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
it('Should be able to upload a video with this user', function (done) {
|
it('Should be able to upload a video with this user', function (done) {
|
||||||
this.timeout(5000)
|
this.timeout(5000)
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ const testUtils = {
|
||||||
getAllVideosListBy: getAllVideosListBy,
|
getAllVideosListBy: getAllVideosListBy,
|
||||||
getClient: getClient,
|
getClient: getClient,
|
||||||
getFriendsList: getFriendsList,
|
getFriendsList: getFriendsList,
|
||||||
|
getUserInformation: getUserInformation,
|
||||||
getUsersList: getUsersList,
|
getUsersList: getUsersList,
|
||||||
getVideo: getVideo,
|
getVideo: getVideo,
|
||||||
getVideosList: getVideosList,
|
getVideosList: getVideosList,
|
||||||
|
@ -93,6 +94,18 @@ function getClient (url, end) {
|
||||||
.end(end)
|
.end(end)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getUserInformation (url, accessToken, end) {
|
||||||
|
const path = '/api/v1/users/me'
|
||||||
|
|
||||||
|
request(url)
|
||||||
|
.get(path)
|
||||||
|
.set('Accept', 'application/json')
|
||||||
|
.set('Authorization', 'Bearer ' + accessToken)
|
||||||
|
.expect(200)
|
||||||
|
.expect('Content-Type', /json/)
|
||||||
|
.end(end)
|
||||||
|
}
|
||||||
|
|
||||||
function getUsersList (url, end) {
|
function getUsersList (url, end) {
|
||||||
const path = '/api/v1/users'
|
const path = '/api/v1/users'
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user