ApplicationFollow -> SeverFollow
This commit is contained in:
parent
21e0727a84
commit
4610bc5b12
|
@ -13,7 +13,7 @@ export const FollowsRoutes: Routes = [
|
|||
component: FollowsComponent,
|
||||
canActivate: [ UserRightGuard ],
|
||||
data: {
|
||||
userRight: UserRight.MANAGE_APPLICATION_FOLLOW
|
||||
userRight: UserRight.MANAGE_SERVER_FOLLOW
|
||||
},
|
||||
children: [
|
||||
{
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 () {
|
||||
|
|
|
@ -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
|
||||
]
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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))
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue