소스 검색

Finish stats tests and fix all time calculation

production
Jack Foltz 5 년 전
부모
커밋
137b47cf0b
로그인 계정: foltik <jack@foltz.io> GPG 키 ID: 303F88F996E95541
2개의 변경된 파일23개의 추가작업 그리고 6개의 파일을 삭제
  1. +16
    -4
      app/routes/api/stats.js
  2. +7
    -2
      test/api.js

+ 16
- 4
app/routes/api/stats.js 파일 보기

@@ -72,7 +72,6 @@ router.get('/week', requireAuth('stats.get'), wrap(async (req, res) => {
}
}
]).toArray());

const viewStats = await (View.collection.aggregate([
{
$match: {
@@ -105,7 +104,7 @@ router.get('/week', requireAuth('stats.get'), wrap(async (req, res) => {
}));

router.get('/all', requireAuth('stats.get'), wrap(async (req, res) => {
const stats = await (Upload.collection.aggregate([
const uploadStats = await (Upload.collection.aggregate([
{
$match: {
'uploader': req.username
@@ -113,7 +112,6 @@ router.get('/all', requireAuth('stats.get'), wrap(async (req, res) => {
},
{
$project: {
'views': '$views',
'size': '$file.size'
}
},
@@ -121,11 +119,25 @@ router.get('/all', requireAuth('stats.get'), wrap(async (req, res) => {
$group: {
'_id': 'total',
'count': {$sum: 1},
'views': {$sum: '$views'},
'size': {$sum: '$size'}
}
}
]).toArray());
const viewStats = await (View.collection.aggregate([
{
$match: {
'uploader': req.username
}
},
{
$group: {
'_id': 'total',
'views': {$sum: 1},
}
}
]).toArray());

const stats = mergeAggregations(uploadStats, viewStats);

res.status(200).json(stats);
}));


+ 7
- 2
test/api.js 파일 보기

@@ -1021,8 +1021,13 @@ describe('Stats', () => {
await setupUploadsAndViews();

await util.createSession(agent, ['stats.get'], 'user');
const stats = await util.getStatsAll(agent);
console.log(stats.body);
const stats = (await util.getStatsAll(agent)).body;

stats.should.have.property('total');
stats.total.should.have.property('count').equal(8);
stats.total.should.have.property('size').equal(8);
stats.total.should.have.property('views').equal(8);

await util.logout(agent);
});
});


불러오는 중...
취소
저장