ApplicationFollow -> SeverFollow

pull/128/head
Chocobozzz 2017-11-16 17:16:42 +01:00
parent 21e0727a84
commit 4610bc5b12
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
12 changed files with 78 additions and 128 deletions

View File

@ -13,7 +13,7 @@ export const FollowsRoutes: Routes = [
component: FollowsComponent,
canActivate: [ UserRightGuard ],
data: {
userRight: UserRight.MANAGE_APPLICATION_FOLLOW
userRight: UserRight.MANAGE_SERVER_FOLLOW
},
children: [
{

View File

@ -11,7 +11,7 @@ import { AccountFollow, ResultList } from '../../../../../../shared'
@Injectable()
export class FollowService {
private static BASE_APPLICATION_URL = API_URL + '/api/v1/application'
private static BASE_APPLICATION_URL = API_URL + '/api/v1/server'
constructor (
private authHttp: HttpClient,

View File

@ -5,7 +5,7 @@
List users
</a>
<a *ngIf="hasApplicationFollowRight()" routerLink="/admin/follows" routerLinkActive="active">
<a *ngIf="hasServerFollowRight()" routerLink="/admin/follows" routerLinkActive="active">
<span class="hidden-xs glyphicon glyphicon-cloud"></span>
Manage follows
</a>

View File

@ -15,8 +15,8 @@ export class MenuAdminComponent {
return this.auth.getUser().hasRight(UserRight.MANAGE_USERS)
}
hasApplicationFollowRight () {
return this.auth.getUser().hasRight(UserRight.MANAGE_APPLICATION_FOLLOW)
hasServerFollowRight () {
return this.auth.getUser().hasRight(UserRight.MANAGE_SERVER_FOLLOW)
}
hasVideoAbusesRight () {

View File

@ -16,7 +16,7 @@ export class MenuComponent implements OnInit {
private routesPerRight = {
[UserRight.MANAGE_USERS]: '/admin/users',
[UserRight.MANAGE_APPLICATION_FOLLOW]: '/admin/friends',
[UserRight.MANAGE_SERVER_FOLLOW]: '/admin/friends',
[UserRight.MANAGE_VIDEO_ABUSES]: '/admin/video-abuses',
[UserRight.MANAGE_VIDEO_BLACKLIST]: '/admin/video-blacklist'
}
@ -58,7 +58,7 @@ export class MenuComponent implements OnInit {
const adminRights = [
UserRight.MANAGE_USERS,
UserRight.MANAGE_APPLICATION_FOLLOW,
UserRight.MANAGE_SERVER_FOLLOW,
UserRight.MANAGE_VIDEO_ABUSES,
UserRight.MANAGE_VIDEO_BLACKLIST
]

View File

@ -4,13 +4,13 @@ import { badRequest } from '../../helpers'
import { oauthClientsRouter } from './oauth-clients'
import { configRouter } from './config'
import { applicationRouter } from './server'
import { serverRouter } from './server'
import { usersRouter } from './users'
import { videosRouter } from './videos'
const apiRouter = express.Router()
apiRouter.use('/application', applicationRouter)
apiRouter.use('/server', serverRouter)
apiRouter.use('/oauth-clients', oauthClientsRouter)
apiRouter.use('/config', configRouter)
apiRouter.use('/users', usersRouter)

View File

@ -15,9 +15,9 @@ import { ensureUserHasRight } from '../../../middlewares/user-right'
import { followValidator } from '../../../middlewares/validators/servers'
import { followersSortValidator, followingSortValidator } from '../../../middlewares/validators/sort'
const applicationFollowsRouter = express.Router()
const serverFollowsRouter = express.Router()
applicationFollowsRouter.get('/following',
serverFollowsRouter.get('/following',
paginationValidator,
followingSortValidator,
setFollowingSort,
@ -25,15 +25,15 @@ applicationFollowsRouter.get('/following',
asyncMiddleware(listFollowing)
)
applicationFollowsRouter.post('/follow',
serverFollowsRouter.post('/follow',
authenticate,
ensureUserHasRight(UserRight.MANAGE_APPLICATION_FOLLOW),
ensureUserHasRight(UserRight.MANAGE_SERVER_FOLLOW),
followValidator,
setBodyHostsPort,
asyncMiddleware(follow)
)
applicationFollowsRouter.get('/followers',
serverFollowsRouter.get('/followers',
paginationValidator,
followersSortValidator,
setFollowersSort,
@ -44,21 +44,21 @@ applicationFollowsRouter.get('/followers',
// ---------------------------------------------------------------------------
export {
applicationFollowsRouter
serverFollowsRouter
}
// ---------------------------------------------------------------------------
async function listFollowing (req: express.Request, res: express.Response, next: express.NextFunction) {
const applicationAccount = await getServerAccount()
const resultList = await db.AccountFollow.listFollowingForApi(applicationAccount.id, req.query.start, req.query.count, req.query.sort)
const serverAccount = await getServerAccount()
const resultList = await db.AccountFollow.listFollowingForApi(serverAccount.id, req.query.start, req.query.count, req.query.sort)
return res.json(getFormattedObjects(resultList.data, resultList.total))
}
async function listFollowers (req: express.Request, res: express.Response, next: express.NextFunction) {
const applicationAccount = await getServerAccount()
const resultList = await db.AccountFollow.listFollowersForApi(applicationAccount.id, req.query.start, req.query.count, req.query.sort)
const serverAccount = await getServerAccount()
const resultList = await db.AccountFollow.listFollowersForApi(serverAccount.id, req.query.start, req.query.count, req.query.sort)
return res.json(getFormattedObjects(resultList.data, resultList.total))
}

View File

@ -1,12 +1,12 @@
import * as express from 'express'
import { applicationFollowsRouter } from './follows'
import { serverFollowsRouter } from './follows'
const applicationRouter = express.Router()
const serverRouter = express.Router()
applicationRouter.use('/', applicationFollowsRouter)
serverRouter.use('/', serverFollowsRouter)
// ---------------------------------------------------------------------------
export {
applicationRouter
serverRouter
}

View File

@ -322,7 +322,7 @@ const OPENGRAPH_AND_OEMBED_COMMENT = '<!-- open graph and oembed tags -->'
if (isTestInstance() === true) {
CONSTRAINTS_FIELDS.VIDEOS.DURATION.max = 14
FRIEND_SCORE.BASE = 20
JOBS_FETCHING_INTERVAL = 10000
JOBS_FETCHING_INTERVAL = 2000
REMOTE_SCHEME.HTTP = 'http'
REMOTE_SCHEME.WS = 'ws'
STATIC_MAX_AGE = '0'

View File

@ -0,0 +1,53 @@
import * as request from 'supertest'
import { wait } from './miscs'
function getFollowersListPaginationAndSort (url: string, start: number, count: number, sort: string) {
const path = '/api/v1/servers/followers'
return request(url)
.get(path)
.query({ start })
.query({ count })
.query({ sort })
.set('Accept', 'application/json')
.expect(200)
.expect('Content-Type', /json/)
}
function getFollowingListPaginationAndSort (url: string, start: number, count: number, sort: string) {
const path = '/api/v1/servers/following'
return request(url)
.get(path)
.query({ start })
.query({ count })
.query({ sort })
.set('Accept', 'application/json')
.expect(200)
.expect('Content-Type', /json/)
}
async function follow (follower: string, following: string[], accessToken: string, expectedStatus = 204) {
const path = '/api/v1/servers/follow'
const res = await request(follower)
.post(path)
.set('Accept', 'application/json')
.set('Authorization', 'Bearer ' + accessToken)
.send({ 'hosts': following })
.expect(expectedStatus)
// Wait request propagation
await wait(1000)
return res
}
// ---------------------------------------------------------------------------
export {
getFollowersListPaginationAndSort,
getFollowingListPaginationAndSort,
follow
}

View File

@ -1,103 +0,0 @@
import * as request from 'supertest'
import { wait } from './miscs'
function getFriendsList (url: string) {
const path = '/api/v1/pods/'
return request(url)
.get(path)
.set('Accept', 'application/json')
.expect(200)
.expect('Content-Type', /json/)
}
function getPodsListPaginationAndSort (url: string, start: number, count: number, sort: string) {
const path = '/api/v1/pods/'
return request(url)
.get(path)
.query({ start })
.query({ count })
.query({ sort })
.set('Accept', 'application/json')
.expect(200)
.expect('Content-Type', /json/)
}
async function makeFriends (url: string, accessToken: string, expectedStatus = 204) {
// Which pod makes friends with which pod
const friendsMatrix = {
'http://localhost:9001': [
'localhost:9002'
],
'http://localhost:9002': [
'localhost:9003'
],
'http://localhost:9003': [
'localhost:9001'
],
'http://localhost:9004': [
'localhost:9002'
],
'http://localhost:9005': [
'localhost:9001',
'localhost:9004'
],
'http://localhost:9006': [
'localhost:9001',
'localhost:9002',
'localhost:9003'
]
}
const path = '/api/v1/pods/make-friends'
// The first pod make friend with the third
const res = await request(url)
.post(path)
.set('Accept', 'application/json')
.set('Authorization', 'Bearer ' + accessToken)
.send({ 'hosts': friendsMatrix[url] })
.expect(expectedStatus)
// Wait request propagation
await wait(1000)
return res
}
async function quitFriends (url: string, accessToken: string, expectedStatus = 204) {
const path = '/api/v1/pods/quit-friends'
// The first pod make friend with the third
const res = await request(url)
.get(path)
.set('Accept', 'application/json')
.set('Authorization', 'Bearer ' + accessToken)
.expect(expectedStatus)
// Wait request propagation
await wait(1000)
return res
}
function quitOneFriend (url: string, accessToken: string, friendId: number, expectedStatus = 204) {
const path = '/api/v1/pods/' + friendId
return request(url)
.delete(path)
.set('Accept', 'application/json')
.set('Authorization', 'Bearer ' + accessToken)
.expect(expectedStatus)
}
// ---------------------------------------------------------------------------
export {
getFriendsList,
makeFriends,
quitFriends,
quitOneFriend,
getPodsListPaginationAndSort
}

View File

@ -1,7 +1,7 @@
export enum UserRight {
ALL,
MANAGE_USERS,
MANAGE_APPLICATION_FOLLOW,
MANAGE_SERVER_FOLLOW,
MANAGE_VIDEO_ABUSES,
MANAGE_VIDEO_BLACKLIST,
REMOVE_ANY_VIDEO,