diff --git a/client/src/app/shared/actor/actor.model.ts b/client/src/app/shared/actor/actor.model.ts
index adecec1fc..5a517c975 100644
--- a/client/src/app/shared/actor/actor.model.ts
+++ b/client/src/app/shared/actor/actor.model.ts
@@ -4,7 +4,6 @@ import { getAbsoluteAPIUrl } from '@app/shared/misc/utils'
export abstract class Actor implements ActorServer {
id: number
- uuid: string
url: string
name: string
host: string
@@ -35,7 +34,6 @@ export abstract class Actor implements ActorServer {
protected constructor (hash: ActorServer) {
this.id = hash.id
- this.uuid = hash.uuid
this.url = hash.url
this.name = hash.name
this.host = hash.host
diff --git a/scripts/clean/server/test.sh b/scripts/clean/server/test.sh
index 5694ac922..34afd6a9d 100755
--- a/scripts/clean/server/test.sh
+++ b/scripts/clean/server/test.sh
@@ -17,8 +17,11 @@ removeFiles () {
}
dropRedis () {
- redis-cli KEYS "bull-localhost:900$1*" | grep -v empty | xargs --no-run-if-empty redis-cli DEL
- redis-cli KEYS "redis-localhost:900$1*" | grep -v empty | xargs --no-run-if-empty redis-cli DEL
+ port=$((9000+$1))
+
+ redis-cli KEYS "bull-localhost:$port*" | grep -v empty | xargs --no-run-if-empty redis-cli DEL
+ redis-cli KEYS "redis-localhost:$port*" | grep -v empty | xargs --no-run-if-empty redis-cli DEL
+ redis-cli KEYS "*redis-localhost:$port-" | grep -v empty | xargs --no-run-if-empty redis-cli DEL
}
seq=$(seq 1 6)
diff --git a/scripts/test.sh b/scripts/test.sh
index cf8895365..5ec7a5920 100755
--- a/scripts/test.sh
+++ b/scripts/test.sh
@@ -3,6 +3,8 @@
set -eu
npm run build:server
+npm run setup:cli
+
npm run travis -- lint
mocha --exit --require ts-node/register/type-check --bail server/tests/index.ts
diff --git a/server/controllers/api/users/index.ts b/server/controllers/api/users/index.ts
index a04f77841..2e03587ce 100644
--- a/server/controllers/api/users/index.ts
+++ b/server/controllers/api/users/index.ts
@@ -190,8 +190,7 @@ async function createUser (req: express.Request, res: express.Response) {
user: {
id: user.id,
account: {
- id: account.id,
- uuid: account.Actor.uuid
+ id: account.id
}
}
}).end()
diff --git a/server/controllers/api/video-channel.ts b/server/controllers/api/video-channel.ts
index 3d6dbfe70..c98a39be2 100644
--- a/server/controllers/api/video-channel.ts
+++ b/server/controllers/api/video-channel.ts
@@ -143,15 +143,14 @@ async function addVideoChannel (req: express.Request, res: express.Response) {
})
setAsyncActorKeys(videoChannelCreated.Actor)
- .catch(err => logger.error('Cannot set async actor keys for account %s.', videoChannelCreated.Actor.uuid, { err }))
+ .catch(err => logger.error('Cannot set async actor keys for account %s.', videoChannelCreated.Actor.url, { err }))
auditLogger.create(getAuditIdFromRes(res), new VideoChannelAuditView(videoChannelCreated.toFormattedJSON()))
- logger.info('Video channel with uuid %s created.', videoChannelCreated.Actor.uuid)
+ logger.info('Video channel %s created.', videoChannelCreated.Actor.url)
return res.json({
videoChannel: {
- id: videoChannelCreated.id,
- uuid: videoChannelCreated.Actor.uuid
+ id: videoChannelCreated.id
}
}).end()
}
@@ -180,7 +179,7 @@ async function updateVideoChannel (req: express.Request, res: express.Response)
new VideoChannelAuditView(videoChannelInstanceUpdated.toFormattedJSON()),
oldVideoChannelAuditKeys
)
- logger.info('Video channel with name %s and uuid %s updated.', videoChannelInstance.name, videoChannelInstance.Actor.uuid)
+ logger.info('Video channel %s updated.', videoChannelInstance.Actor.url)
})
} catch (err) {
logger.debug('Cannot update the video channel.', { err })
@@ -205,7 +204,7 @@ async function removeVideoChannel (req: express.Request, res: express.Response)
await videoChannelInstance.destroy({ transaction: t })
auditLogger.delete(getAuditIdFromRes(res), new VideoChannelAuditView(videoChannelInstance.toFormattedJSON()))
- logger.info('Video channel with name %s and uuid %s deleted.', videoChannelInstance.name, videoChannelInstance.Actor.uuid)
+ logger.info('Video channel %s deleted.', videoChannelInstance.Actor.url)
})
return res.type('json').status(204).end()
diff --git a/server/helpers/custom-validators/accounts.ts b/server/helpers/custom-validators/accounts.ts
index 146c7708e..31a2de5ca 100644
--- a/server/helpers/custom-validators/accounts.ts
+++ b/server/helpers/custom-validators/accounts.ts
@@ -1,7 +1,6 @@
import * as Bluebird from 'bluebird'
import { Response } from 'express'
import 'express-validator'
-import * as validator from 'validator'
import { AccountModel } from '../../models/account/account'
import { isUserDescriptionValid, isUserUsernameValid } from './users'
import { exists } from './misc'
@@ -18,14 +17,8 @@ function isAccountDescriptionValid (value: string) {
return isUserDescriptionValid(value)
}
-function doesAccountIdExist (id: number | string, res: Response, sendNotFound = true) {
- let promise: Bluebird
-
- if (validator.isInt('' + id)) {
- promise = AccountModel.load(+id)
- } else { // UUID
- promise = AccountModel.loadByUUID('' + id)
- }
+function doesAccountIdExist (id: number, res: Response, sendNotFound = true) {
+ const promise = AccountModel.load(id)
return doesAccountExist(promise, res, sendNotFound)
}
diff --git a/server/helpers/custom-validators/video-channels.ts b/server/helpers/custom-validators/video-channels.ts
index fd56b9a70..f818ce8f1 100644
--- a/server/helpers/custom-validators/video-channels.ts
+++ b/server/helpers/custom-validators/video-channels.ts
@@ -26,13 +26,8 @@ async function doesLocalVideoChannelNameExist (name: string, res: express.Respon
return processVideoChannelExist(videoChannel, res)
}
-async function doesVideoChannelIdExist (id: number | string, res: express.Response) {
- let videoChannel: VideoChannelModel
- if (validator.isInt('' + id)) {
- videoChannel = await VideoChannelModel.loadAndPopulateAccount(+id)
- } else { // UUID
- videoChannel = await VideoChannelModel.loadByUUIDAndPopulateAccount('' + id)
- }
+async function doesVideoChannelIdExist (id: number, res: express.Response) {
+ const videoChannel = await VideoChannelModel.loadAndPopulateAccount(+id)
return processVideoChannelExist(videoChannel, res)
}
diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts
index ec040b80e..be30be463 100644
--- a/server/initializers/constants.ts
+++ b/server/initializers/constants.ts
@@ -14,7 +14,7 @@ import { CONFIG, registerConfigChangedHandler } from './config'
// ---------------------------------------------------------------------------
-const LAST_MIGRATION_VERSION = 380
+const LAST_MIGRATION_VERSION = 385
// ---------------------------------------------------------------------------
diff --git a/server/initializers/migrations/0385-remove-actor-uuid.ts b/server/initializers/migrations/0385-remove-actor-uuid.ts
new file mode 100644
index 000000000..032c0562b
--- /dev/null
+++ b/server/initializers/migrations/0385-remove-actor-uuid.ts
@@ -0,0 +1,19 @@
+import * as Sequelize from 'sequelize'
+
+async function up (utils: {
+ transaction: Sequelize.Transaction,
+ queryInterface: Sequelize.QueryInterface,
+ sequelize: Sequelize.Sequelize,
+ db: any
+}): Promise {
+ await utils.queryInterface.removeColumn('actor', 'uuid')
+}
+
+function down (options) {
+ throw new Error('Not implemented.')
+}
+
+export {
+ up,
+ down
+}
diff --git a/server/lib/activitypub/actor.ts b/server/lib/activitypub/actor.ts
index 25cd40905..e0cb986bd 100644
--- a/server/lib/activitypub/actor.ts
+++ b/server/lib/activitypub/actor.ts
@@ -33,7 +33,7 @@ function setAsyncActorKeys (actor: ActorModel) {
return actor.save()
})
.catch(err => {
- logger.error('Cannot set public/private keys of actor %d.', actor.uuid, { err })
+ logger.error('Cannot set public/private keys of actor %d.', actor.url, { err })
return actor
})
}
@@ -128,18 +128,17 @@ async function updateActorInstance (actorInstance: ActorModel, attributes: Activ
const followersCount = await fetchActorTotalItems(attributes.followers)
const followingCount = await fetchActorTotalItems(attributes.following)
- actorInstance.set('type', attributes.type)
- actorInstance.set('uuid', attributes.uuid)
- actorInstance.set('preferredUsername', attributes.preferredUsername)
- actorInstance.set('url', attributes.id)
- actorInstance.set('publicKey', attributes.publicKey.publicKeyPem)
- actorInstance.set('followersCount', followersCount)
- actorInstance.set('followingCount', followingCount)
- actorInstance.set('inboxUrl', attributes.inbox)
- actorInstance.set('outboxUrl', attributes.outbox)
- actorInstance.set('sharedInboxUrl', attributes.endpoints.sharedInbox)
- actorInstance.set('followersUrl', attributes.followers)
- actorInstance.set('followingUrl', attributes.following)
+ actorInstance.type = attributes.type
+ actorInstance.preferredUsername = attributes.preferredUsername
+ actorInstance.url = attributes.id
+ actorInstance.publicKey = attributes.publicKey.publicKeyPem
+ actorInstance.followersCount = followersCount
+ actorInstance.followingCount = followingCount
+ actorInstance.inboxUrl = attributes.inbox
+ actorInstance.outboxUrl = attributes.outbox
+ actorInstance.sharedInboxUrl = attributes.endpoints.sharedInbox
+ actorInstance.followersUrl = attributes.followers
+ actorInstance.followingUrl = attributes.following
}
async function updateActorAvatarInstance (actorInstance: ActorModel, avatarName: string, t: Transaction) {
@@ -388,7 +387,6 @@ async function fetchRemoteActor (actorUrl: string): Promise<{ statusCode?: numbe
const actor = new ActorModel({
type: actorJSON.type,
- uuid: actorJSON.uuid,
preferredUsername: actorJSON.preferredUsername,
url: actorJSON.id,
publicKey: actorJSON.publicKey.publicKeyPem,
diff --git a/server/lib/activitypub/process/process-delete.ts b/server/lib/activitypub/process/process-delete.ts
index 76f07fd8a..6f10a50bd 100644
--- a/server/lib/activitypub/process/process-delete.ts
+++ b/server/lib/activitypub/process/process-delete.ts
@@ -95,23 +95,23 @@ async function processDeleteVideoPlaylist (actor: ActorModel, playlistToDelete:
}
async function processDeleteAccount (accountToRemove: AccountModel) {
- logger.debug('Removing remote account "%s".', accountToRemove.Actor.uuid)
+ logger.debug('Removing remote account "%s".', accountToRemove.Actor.url)
await sequelizeTypescript.transaction(async t => {
await accountToRemove.destroy({ transaction: t })
})
- logger.info('Remote account with uuid %s removed.', accountToRemove.Actor.uuid)
+ logger.info('Remote account %s removed.', accountToRemove.Actor.url)
}
async function processDeleteVideoChannel (videoChannelToRemove: VideoChannelModel) {
- logger.debug('Removing remote video channel "%s".', videoChannelToRemove.Actor.uuid)
+ logger.debug('Removing remote video channel "%s".', videoChannelToRemove.Actor.url)
await sequelizeTypescript.transaction(async t => {
await videoChannelToRemove.destroy({ transaction: t })
})
- logger.info('Remote video channel with uuid %s removed.', videoChannelToRemove.Actor.uuid)
+ logger.info('Remote video channel %s removed.', videoChannelToRemove.Actor.url)
}
function processDeleteVideoComment (byActor: ActorModel, videoComment: VideoCommentModel, activity: ActivityDelete) {
diff --git a/server/lib/activitypub/process/process-update.ts b/server/lib/activitypub/process/process-update.ts
index 54a9234bb..71a16dacc 100644
--- a/server/lib/activitypub/process/process-update.ts
+++ b/server/lib/activitypub/process/process-update.ts
@@ -95,7 +95,7 @@ async function processUpdateCacheFile (byActor: ActorModel, activity: ActivityUp
async function processUpdateActor (actor: ActorModel, activity: ActivityUpdate) {
const actorAttributesToUpdate = activity.object as ActivityPubActor
- logger.debug('Updating remote account "%s".', actorAttributesToUpdate.uuid)
+ logger.debug('Updating remote account "%s".', actorAttributesToUpdate.url)
let accountOrChannelInstance: AccountModel | VideoChannelModel
let actorFieldsSave: object
let accountOrChannelFieldsSave: object
@@ -128,7 +128,7 @@ async function processUpdateActor (actor: ActorModel, activity: ActivityUpdate)
await accountOrChannelInstance.save({ transaction: t })
})
- logger.info('Remote account with uuid %s updated', actorAttributesToUpdate.uuid)
+ logger.info('Remote account %s updated', actorAttributesToUpdate.url)
} catch (err) {
if (actor !== undefined && actorFieldsSave !== undefined) {
resetSequelizeInstance(actor, actorFieldsSave)
diff --git a/server/middlewares/validators/feeds.ts b/server/middlewares/validators/feeds.ts
index e4f5c98fe..dd362619d 100644
--- a/server/middlewares/validators/feeds.ts
+++ b/server/middlewares/validators/feeds.ts
@@ -1,21 +1,20 @@
import * as express from 'express'
import { param, query } from 'express-validator/check'
-import { doesAccountIdExist, isAccountNameValid, doesAccountNameWithHostExist } from '../../helpers/custom-validators/accounts'
-import { isIdOrUUIDValid } from '../../helpers/custom-validators/misc'
+import { doesAccountIdExist, doesAccountNameWithHostExist } from '../../helpers/custom-validators/accounts'
+import { isIdOrUUIDValid, isIdValid } from '../../helpers/custom-validators/misc'
import { logger } from '../../helpers/logger'
import { areValidationErrors } from './utils'
import { isValidRSSFeed } from '../../helpers/custom-validators/feeds'
import { doesVideoChannelIdExist, doesVideoChannelNameWithHostExist } from '../../helpers/custom-validators/video-channels'
import { doesVideoExist } from '../../helpers/custom-validators/videos'
-import { isActorPreferredUsernameValid } from '../../helpers/custom-validators/activitypub/actor'
const videoFeedsValidator = [
param('format').optional().custom(isValidRSSFeed).withMessage('Should have a valid format (rss, atom, json)'),
query('format').optional().custom(isValidRSSFeed).withMessage('Should have a valid format (rss, atom, json)'),
- query('accountId').optional().custom(isIdOrUUIDValid),
- query('accountName').optional().custom(isAccountNameValid),
- query('videoChannelId').optional().custom(isIdOrUUIDValid),
- query('videoChannelName').optional().custom(isActorPreferredUsernameValid),
+ query('accountId').optional().custom(isIdValid),
+ query('accountName').optional(),
+ query('videoChannelId').optional().custom(isIdValid),
+ query('videoChannelName').optional(),
async (req: express.Request, res: express.Response, next: express.NextFunction) => {
logger.debug('Checking feeds parameters', { parameters: req.query })
diff --git a/server/models/account/account.ts b/server/models/account/account.ts
index 2b04acd86..09cada096 100644
--- a/server/models/account/account.ts
+++ b/server/models/account/account.ts
@@ -47,7 +47,7 @@ export enum ScopeNames {
attributes: [ 'id', 'name' ],
include: [
{
- attributes: [ 'id', 'uuid', 'preferredUsername', 'url', 'serverId', 'avatarId' ],
+ attributes: [ 'id', 'preferredUsername', 'url', 'serverId', 'avatarId' ],
model: ActorModel.unscoped(),
required: true,
where: whereActor,
@@ -180,22 +180,6 @@ export class AccountModel extends Model {
return AccountModel.findByPk(id, { transaction })
}
- static loadByUUID (uuid: string) {
- const query = {
- include: [
- {
- model: ActorModel,
- required: true,
- where: {
- uuid
- }
- }
- ]
- }
-
- return AccountModel.findOne(query)
- }
-
static loadByNameWithHost (nameWithHost: string) {
const [ accountName, host ] = nameWithHost.split('@')
@@ -332,7 +316,6 @@ export class AccountModel extends Model {
return {
id: this.id,
- uuid: actor.uuid,
name: actor.name,
displayName: this.getDisplayName(),
url: actor.url,
diff --git a/server/models/activitypub/actor.ts b/server/models/activitypub/actor.ts
index 4a466441c..bd6a2c8fd 100644
--- a/server/models/activitypub/actor.ts
+++ b/server/models/activitypub/actor.ts
@@ -7,13 +7,11 @@ import {
Column,
CreatedAt,
DataType,
- Default,
DefaultScope,
ForeignKey,
HasMany,
HasOne,
Is,
- IsUUID,
Model,
Scopes,
Table,
@@ -119,10 +117,6 @@ export const unusedActorAttributesForAPI = [
{
fields: [ 'avatarId' ]
},
- {
- fields: [ 'uuid' ],
- unique: true
- },
{
fields: [ 'followersUrl' ]
}
@@ -134,12 +128,6 @@ export class ActorModel extends Model {
@Column(DataType.ENUM(...values(ACTIVITY_PUB_ACTOR_TYPES)))
type: ActivityPubActorType
- @AllowNull(false)
- @Default(DataType.UUIDV4)
- @IsUUID(4)
- @Column(DataType.UUID)
- uuid: string
-
@AllowNull(false)
@Is('ActorPreferredUsername', value => throwIfNotValid(value, isActorPreferredUsernameValid, 'actor preferred username'))
@Column
@@ -408,7 +396,6 @@ export class ActorModel extends Model {
return {
id: this.id,
url: this.url,
- uuid: this.uuid,
name: this.preferredUsername,
host: this.getHost(),
hostRedundancyAllowed: this.getRedundancyAllowed(),
@@ -454,7 +441,6 @@ export class ActorModel extends Model {
endpoints: {
sharedInbox: this.sharedInboxUrl
},
- uuid: this.uuid,
publicKey: {
id: this.getPublicKeyUrl(),
owner: this.url,
diff --git a/server/models/video/video-channel.ts b/server/models/video/video-channel.ts
index d73be18d6..b0b261c88 100644
--- a/server/models/video/video-channel.ts
+++ b/server/models/video/video-channel.ts
@@ -72,7 +72,7 @@ type AvailableForListOptions = {
attributes: [ 'name', 'description', 'id', 'actorId' ],
include: [
{
- attributes: [ 'uuid', 'preferredUsername', 'url', 'serverId', 'avatarId' ],
+ attributes: [ 'preferredUsername', 'url', 'serverId', 'avatarId' ],
model: ActorModel.unscoped(),
required: true,
include: [
@@ -387,24 +387,6 @@ export class VideoChannelModel extends Model {
.findByPk(id)
}
- static loadByUUIDAndPopulateAccount (uuid: string) {
- const query = {
- include: [
- {
- model: ActorModel,
- required: true,
- where: {
- uuid
- }
- }
- ]
- }
-
- return VideoChannelModel
- .scope([ ScopeNames.WITH_ACCOUNT ])
- .findOne(query)
- }
-
static loadByUrlAndPopulateAccount (url: string) {
const query = {
include: [
@@ -510,7 +492,6 @@ export class VideoChannelModel extends Model {
return {
id: this.id,
- uuid: actor.uuid,
name: actor.name,
displayName: this.getDisplayName(),
url: actor.url,
diff --git a/server/tests/api/users/users-multiple-servers.ts b/server/tests/api/users/users-multiple-servers.ts
index 988fdad3f..791418318 100644
--- a/server/tests/api/users/users-multiple-servers.ts
+++ b/server/tests/api/users/users-multiple-servers.ts
@@ -5,7 +5,8 @@ import 'mocha'
import { Account } from '../../../../shared/models/actors'
import {
checkTmpIsEmpty,
- checkVideoFilesWereRemoved, cleanupTests,
+ checkVideoFilesWereRemoved,
+ cleanupTests,
createUser,
doubleFollow,
flushAndRunMultipleServers,
@@ -15,14 +16,7 @@ import {
updateMyUser,
userLogin
} from '../../../../shared/extra-utils'
-import {
- getMyUserInformation,
- killallServers,
- ServerInfo,
- testImage,
- updateMyAvatar,
- uploadVideo
-} from '../../../../shared/extra-utils/index'
+import { getMyUserInformation, ServerInfo, testImage, updateMyAvatar, uploadVideo } from '../../../../shared/extra-utils/index'
import { checkActorFilesWereRemoved, getAccount, getAccountsList } from '../../../../shared/extra-utils/users/accounts'
import { setAccessTokensToServers } from '../../../../shared/extra-utils/users/login'
import { User } from '../../../../shared/models/users'
@@ -34,12 +28,10 @@ const expect = chai.expect
describe('Test users with multiple servers', function () {
let servers: ServerInfo[] = []
let user: User
- let userAccountName: string
- let userAccountUUID: string
- let userVideoChannelUUID: string
let userId: number
let videoUUID: string
let userAccessToken: string
+ let userAvatarFilename: string
before(async function () {
this.timeout(120000)
@@ -74,19 +66,6 @@ describe('Test users with multiple servers', function () {
userAccessToken = await userLogin(servers[ 0 ], user)
}
- {
- const res = await getMyUserInformation(servers[0].url, userAccessToken)
- const account: Account = res.body.account
- userAccountName = account.name + '@' + account.host
- userAccountUUID = account.uuid
- }
-
- {
- const res = await getMyUserInformation(servers[ 0 ].url, servers[ 0 ].accessToken)
- const user: User = res.body
- userVideoChannelUUID = user.videoChannels[0].uuid
- }
-
{
const resVideo = await uploadVideo(servers[ 0 ].url, userAccessToken, {})
videoUUID = resVideo.body.video.uuid
@@ -106,6 +85,8 @@ describe('Test users with multiple servers', function () {
const res = await getMyUserInformation(servers[0].url, servers[0].accessToken)
user = res.body
+
+ const account: Account = user.account
expect(user.account.displayName).to.equal('my super display name')
await waitJobs(servers)
@@ -142,7 +123,9 @@ describe('Test users with multiple servers', function () {
const res = await getMyUserInformation(servers[0].url, servers[0].accessToken)
user = res.body
- await testImage(servers[0].url, 'avatar2-resized', user.account.avatar.path, '.png')
+ userAvatarFilename = user.account.avatar.path
+
+ await testImage(servers[0].url, 'avatar2-resized', userAvatarFilename, '.png')
await waitJobs(servers)
})
@@ -173,7 +156,7 @@ describe('Test users with multiple servers', function () {
it('Should list account videos', async function () {
for (const server of servers) {
- const res = await getAccountVideos(server.url, server.accessToken, userAccountName, 0, 5)
+ const res = await getAccountVideos(server.url, server.accessToken, 'user1@localhost:' + servers[0].port, 0, 5)
expect(res.body.total).to.equal(1)
expect(res.body.data).to.be.an('array')
@@ -218,8 +201,7 @@ describe('Test users with multiple servers', function () {
it('Should not have actor files', async () => {
for (const server of servers) {
- await checkActorFilesWereRemoved(userAccountUUID, server.internalServerNumber)
- await checkActorFilesWereRemoved(userVideoChannelUUID, server.internalServerNumber)
+ await checkActorFilesWereRemoved(userAvatarFilename, server.internalServerNumber)
}
})
diff --git a/server/tests/api/videos/video-channels.ts b/server/tests/api/videos/video-channels.ts
index e98f14ea8..2d298dd3f 100644
--- a/server/tests/api/videos/video-channels.ts
+++ b/server/tests/api/videos/video-channels.ts
@@ -18,12 +18,10 @@ import {
import {
addVideoChannel,
deleteVideoChannel,
- flushTests,
getAccountVideoChannelsList,
getMyUserInformation,
getVideoChannel,
getVideoChannelsList,
- killallServers,
ServerInfo,
setAccessTokensToServers,
updateVideoChannel
@@ -35,7 +33,6 @@ const expect = chai.expect
describe('Test video channels', function () {
let servers: ServerInfo[]
let userInfo: User
- let accountUUID: string
let firstVideoChannelId: number
let secondVideoChannelId: number
let videoUUID: string
@@ -51,7 +48,6 @@ describe('Test video channels', function () {
{
const res = await getMyUserInformation(servers[0].url, servers[0].accessToken)
const user: User = res.body
- accountUUID = user.account.uuid
firstVideoChannelId = user.videoChannels[0].id
}
diff --git a/server/tests/feeds/feeds.ts b/server/tests/feeds/feeds.ts
index 0dcdf09cf..437470327 100644
--- a/server/tests/feeds/feeds.ts
+++ b/server/tests/feeds/feeds.ts
@@ -7,13 +7,13 @@ import {
createUser,
doubleFollow,
flushAndRunMultipleServers,
- flushTests,
- getJSONfeed, getMyUserInformation,
+ getJSONfeed,
+ getMyUserInformation,
getXMLfeed,
- killallServers,
ServerInfo,
setAccessTokensToServers,
- uploadVideo, userLogin
+ uploadVideo,
+ userLogin
} from '../../../shared/extra-utils'
import * as libxmljs from 'libxmljs'
import { addVideoCommentThread } from '../../../shared/extra-utils/videos/video-comments'
@@ -28,10 +28,10 @@ const expect = chai.expect
describe('Test syndication feeds', () => {
let servers: ServerInfo[] = []
let userAccessToken: string
- let rootAccountUUID: string
- let rootChannelUUID: string
- let userAccountUUID: string
- let userChannelUUID: string
+ let rootAccountId: number
+ let rootChannelId: number
+ let userAccountId: number
+ let userChannelId: number
before(async function () {
this.timeout(120000)
@@ -45,8 +45,8 @@ describe('Test syndication feeds', () => {
{
const res = await getMyUserInformation(servers[0].url, servers[0].accessToken)
const user: User = res.body
- rootAccountUUID = user.account.uuid
- rootChannelUUID = user.videoChannels[0].uuid
+ rootAccountId = user.account.id
+ rootChannelId = user.videoChannels[0].id
}
{
@@ -56,8 +56,8 @@ describe('Test syndication feeds', () => {
const res = await getMyUserInformation(servers[0].url, userAccessToken)
const user: User = res.body
- userAccountUUID = user.account.uuid
- userChannelUUID = user.videoChannels[0].uuid
+ userAccountId = user.account.id
+ userChannelId = user.videoChannels[0].id
}
{
@@ -127,70 +127,70 @@ describe('Test syndication feeds', () => {
})
it('Should filter by account', async function () {
- for (const server of servers) {
- {
- const json = await getJSONfeed(server.url, 'videos', { accountId: rootAccountUUID })
- const jsonObj = JSON.parse(json.text)
- expect(jsonObj.items.length).to.be.equal(1)
- expect(jsonObj.items[ 0 ].title).to.equal('my super name for server 1')
- expect(jsonObj.items[ 0 ].author.name).to.equal('root')
- }
-
- {
- const json = await getJSONfeed(server.url, 'videos', { accountId: userAccountUUID })
- const jsonObj = JSON.parse(json.text)
- expect(jsonObj.items.length).to.be.equal(1)
- expect(jsonObj.items[ 0 ].title).to.equal('user video')
- expect(jsonObj.items[ 0 ].author.name).to.equal('john')
- }
- }
-
{
- const json = await getJSONfeed(servers[0].url, 'videos', { accountName: 'root' })
+ const json = await getJSONfeed(servers[0].url, 'videos', { accountId: rootAccountId })
const jsonObj = JSON.parse(json.text)
expect(jsonObj.items.length).to.be.equal(1)
expect(jsonObj.items[ 0 ].title).to.equal('my super name for server 1')
+ expect(jsonObj.items[ 0 ].author.name).to.equal('root')
}
{
- const json = await getJSONfeed(servers[0].url, 'videos', { accountName: 'john' })
+ const json = await getJSONfeed(servers[0].url, 'videos', { accountId: userAccountId })
const jsonObj = JSON.parse(json.text)
expect(jsonObj.items.length).to.be.equal(1)
expect(jsonObj.items[ 0 ].title).to.equal('user video')
+ expect(jsonObj.items[ 0 ].author.name).to.equal('john')
+ }
+
+ for (const server of servers) {
+ {
+ const json = await getJSONfeed(server.url, 'videos', { accountName: 'root@localhost:' + servers[0].port })
+ const jsonObj = JSON.parse(json.text)
+ expect(jsonObj.items.length).to.be.equal(1)
+ expect(jsonObj.items[ 0 ].title).to.equal('my super name for server 1')
+ }
+
+ {
+ const json = await getJSONfeed(server.url, 'videos', { accountName: 'john@localhost:' + servers[0].port })
+ const jsonObj = JSON.parse(json.text)
+ expect(jsonObj.items.length).to.be.equal(1)
+ expect(jsonObj.items[ 0 ].title).to.equal('user video')
+ }
}
})
it('Should filter by video channel', async function () {
- for (const server of servers) {
- {
- const json = await getJSONfeed(server.url, 'videos', { videoChannelId: rootChannelUUID })
- const jsonObj = JSON.parse(json.text)
- expect(jsonObj.items.length).to.be.equal(1)
- expect(jsonObj.items[ 0 ].title).to.equal('my super name for server 1')
- expect(jsonObj.items[ 0 ].author.name).to.equal('root')
- }
-
- {
- const json = await getJSONfeed(server.url, 'videos', { videoChannelId: userChannelUUID })
- const jsonObj = JSON.parse(json.text)
- expect(jsonObj.items.length).to.be.equal(1)
- expect(jsonObj.items[ 0 ].title).to.equal('user video')
- expect(jsonObj.items[ 0 ].author.name).to.equal('john')
- }
- }
-
{
- const json = await getJSONfeed(servers[0].url, 'videos', { videoChannelName: 'root_channel' })
+ const json = await getJSONfeed(servers[0].url, 'videos', { videoChannelId: rootChannelId })
const jsonObj = JSON.parse(json.text)
expect(jsonObj.items.length).to.be.equal(1)
expect(jsonObj.items[ 0 ].title).to.equal('my super name for server 1')
+ expect(jsonObj.items[ 0 ].author.name).to.equal('root')
}
{
- const json = await getJSONfeed(servers[0].url, 'videos', { videoChannelName: 'john_channel' })
+ const json = await getJSONfeed(servers[0].url, 'videos', { videoChannelId: userChannelId })
const jsonObj = JSON.parse(json.text)
expect(jsonObj.items.length).to.be.equal(1)
expect(jsonObj.items[ 0 ].title).to.equal('user video')
+ expect(jsonObj.items[ 0 ].author.name).to.equal('john')
+ }
+
+ for (const server of servers) {
+ {
+ const json = await getJSONfeed(server.url, 'videos', { videoChannelName: 'root_channel@localhost:' + servers[0].port })
+ const jsonObj = JSON.parse(json.text)
+ expect(jsonObj.items.length).to.be.equal(1)
+ expect(jsonObj.items[ 0 ].title).to.equal('my super name for server 1')
+ }
+
+ {
+ const json = await getJSONfeed(server.url, 'videos', { videoChannelName: 'john_channel@localhost:' + servers[0].port })
+ const jsonObj = JSON.parse(json.text)
+ expect(jsonObj.items.length).to.be.equal(1)
+ expect(jsonObj.items[ 0 ].title).to.equal('user video')
+ }
}
})
})
diff --git a/shared/extra-utils/users/accounts.ts b/shared/extra-utils/users/accounts.ts
index f64a2dbad..627e17cc3 100644
--- a/shared/extra-utils/users/accounts.ts
+++ b/shared/extra-utils/users/accounts.ts
@@ -39,7 +39,7 @@ async function expectAccountFollows (url: string, nameWithDomain: string, follow
expect(account.followingCount).to.equal(followingCount, message)
}
-async function checkActorFilesWereRemoved (actorUUID: string, serverNumber: number) {
+async function checkActorFilesWereRemoved (filename: string, serverNumber: number) {
const testDirectory = 'test' + serverNumber
for (const directory of [ 'avatars' ]) {
@@ -50,7 +50,7 @@ async function checkActorFilesWereRemoved (actorUUID: string, serverNumber: numb
const files = await readdir(directoryPath)
for (const file of files) {
- expect(file).to.not.contain(actorUUID)
+ expect(file).to.not.contain(filename)
}
}
}
diff --git a/shared/extra-utils/videos/videos.ts b/shared/extra-utils/videos/videos.ts
index b64de2470..a4ca43f26 100644
--- a/shared/extra-utils/videos/videos.ts
+++ b/shared/extra-utils/videos/videos.ts
@@ -524,7 +524,6 @@ async function completeVideoCheck (
expect(video.nsfw).to.equal(attributes.nsfw)
expect(video.description).to.equal(attributes.description)
expect(video.account.id).to.be.a('number')
- expect(video.account.uuid).to.be.a('string')
expect(video.account.host).to.equal(attributes.account.host)
expect(video.account.name).to.equal(attributes.account.name)
expect(video.channel.displayName).to.equal(attributes.channel.displayName)
diff --git a/shared/models/activitypub/activitypub-actor.ts b/shared/models/activitypub/activitypub-actor.ts
index 5e30bf783..53ec579bc 100644
--- a/shared/models/activitypub/activitypub-actor.ts
+++ b/shared/models/activitypub/activitypub-actor.ts
@@ -21,7 +21,6 @@ export interface ActivityPubActor {
attributedTo: ActivityPubAttributedTo[]
support?: string
- uuid: string
publicKey: {
id: string
owner: string
diff --git a/shared/models/actors/account.model.ts b/shared/models/actors/account.model.ts
index 043a2507e..2ff4b9f5e 100644
--- a/shared/models/actors/account.model.ts
+++ b/shared/models/actors/account.model.ts
@@ -10,7 +10,6 @@ export interface Account extends Actor {
export interface AccountSummary {
id: number
- uuid: string
name: string
displayName: string
url: string
diff --git a/shared/models/actors/actor.model.ts b/shared/models/actors/actor.model.ts
index a3953874d..1dbf5f638 100644
--- a/shared/models/actors/actor.model.ts
+++ b/shared/models/actors/actor.model.ts
@@ -2,7 +2,6 @@ import { Avatar } from '../avatars/avatar.model'
export interface Actor {
id: number
- uuid: string
url: string
name: string
host: string
diff --git a/shared/models/videos/channel/video-channel.model.ts b/shared/models/videos/channel/video-channel.model.ts
index 14a813f8f..de4c26b3d 100644
--- a/shared/models/videos/channel/video-channel.model.ts
+++ b/shared/models/videos/channel/video-channel.model.ts
@@ -12,7 +12,6 @@ export interface VideoChannel extends Actor {
export interface VideoChannelSummary {
id: number
- uuid: string
name: string
displayName: string
url: string