From 4610bc5b12eaa4bfd64fe3fd70c65e5b722aa22d Mon Sep 17 00:00:00 2001
From: Chocobozzz <florian.bigard@gmail.com>
Date: Thu, 16 Nov 2017 17:16:42 +0100
Subject: [PATCH] ApplicationFollow -> SeverFollow

---
 .../src/app/+admin/follows/follows.routes.ts  |   2 +-
 .../+admin/follows/shared/follow.service.ts   |   2 +-
 .../app/core/menu/menu-admin.component.html   |   2 +-
 .../src/app/core/menu/menu-admin.component.ts |   4 +-
 client/src/app/core/menu/menu.component.ts    |   4 +-
 server/controllers/api/index.ts               |   4 +-
 server/controllers/api/server/follows.ts      |  20 ++--
 server/controllers/api/server/index.ts        |   8 +-
 server/initializers/constants.ts              |   2 +-
 server/tests/utils/follows.ts                 |  53 +++++++++
 server/tests/utils/pods.ts                    | 103 ------------------
 shared/models/users/user-right.enum.ts        |   2 +-
 12 files changed, 78 insertions(+), 128 deletions(-)
 create mode 100644 server/tests/utils/follows.ts
 delete mode 100644 server/tests/utils/pods.ts

diff --git a/client/src/app/+admin/follows/follows.routes.ts b/client/src/app/+admin/follows/follows.routes.ts
index b7d44f75b..e84c79e82 100644
--- a/client/src/app/+admin/follows/follows.routes.ts
+++ b/client/src/app/+admin/follows/follows.routes.ts
@@ -13,7 +13,7 @@ export const FollowsRoutes: Routes = [
     component: FollowsComponent,
     canActivate: [ UserRightGuard ],
     data: {
-      userRight: UserRight.MANAGE_APPLICATION_FOLLOW
+      userRight: UserRight.MANAGE_SERVER_FOLLOW
     },
     children: [
       {
diff --git a/client/src/app/+admin/follows/shared/follow.service.ts b/client/src/app/+admin/follows/shared/follow.service.ts
index 3dc91dfca..d64361ee3 100644
--- a/client/src/app/+admin/follows/shared/follow.service.ts
+++ b/client/src/app/+admin/follows/shared/follow.service.ts
@@ -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,
diff --git a/client/src/app/core/menu/menu-admin.component.html b/client/src/app/core/menu/menu-admin.component.html
index 99ee287c5..eb2d0d69c 100644
--- a/client/src/app/core/menu/menu-admin.component.html
+++ b/client/src/app/core/menu/menu-admin.component.html
@@ -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>
diff --git a/client/src/app/core/menu/menu-admin.component.ts b/client/src/app/core/menu/menu-admin.component.ts
index 88a654d1f..466da1aee 100644
--- a/client/src/app/core/menu/menu-admin.component.ts
+++ b/client/src/app/core/menu/menu-admin.component.ts
@@ -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 () {
diff --git a/client/src/app/core/menu/menu.component.ts b/client/src/app/core/menu/menu.component.ts
index 872d29819..d2bd71534 100644
--- a/client/src/app/core/menu/menu.component.ts
+++ b/client/src/app/core/menu/menu.component.ts
@@ -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
     ]
diff --git a/server/controllers/api/index.ts b/server/controllers/api/index.ts
index 876c911c7..b00fb7467 100644
--- a/server/controllers/api/index.ts
+++ b/server/controllers/api/index.ts
@@ -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)
diff --git a/server/controllers/api/server/follows.ts b/server/controllers/api/server/follows.ts
index e00787f02..520d4d858 100644
--- a/server/controllers/api/server/follows.ts
+++ b/server/controllers/api/server/follows.ts
@@ -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))
 }
diff --git a/server/controllers/api/server/index.ts b/server/controllers/api/server/index.ts
index 011b971ed..8dc1a0031 100644
--- a/server/controllers/api/server/index.ts
+++ b/server/controllers/api/server/index.ts
@@ -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
 }
diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts
index eeda8347d..f0a569410 100644
--- a/server/initializers/constants.ts
+++ b/server/initializers/constants.ts
@@ -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'
diff --git a/server/tests/utils/follows.ts b/server/tests/utils/follows.ts
new file mode 100644
index 000000000..9ad1ca7f4
--- /dev/null
+++ b/server/tests/utils/follows.ts
@@ -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
+}
diff --git a/server/tests/utils/pods.ts b/server/tests/utils/pods.ts
deleted file mode 100644
index 52e807e70..000000000
--- a/server/tests/utils/pods.ts
+++ /dev/null
@@ -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
-}
diff --git a/shared/models/users/user-right.enum.ts b/shared/models/users/user-right.enum.ts
index ecad69d6f..9460b668e 100644
--- a/shared/models/users/user-right.enum.ts
+++ b/shared/models/users/user-right.enum.ts
@@ -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,