import * as uuidv4 from 'uuid/v4'
import { ActivityPubActor, ActivityPubActorType } from '../../../shared/models/activitypub'
import { ActivityPubAttributedTo } from '../../../shared/models/activitypub/objects'
+import { getActorUrl } from '../../helpers/activitypub'
import { isActorObjectValid } from '../../helpers/custom-validators/activitypub/actor'
import { isActivityPubUrlValid } from '../../helpers/custom-validators/activitypub/misc'
import { retryTransactionWrapper, updateInstanceWithAnother } from '../../helpers/database-utils'
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.uuid, { err })
return actor
})
}
-async function getOrCreateActorAndServerAndModel (actorUrl: string, recurseIfNeeded = true) {
+async function getOrCreateActorAndServerAndModel (activityActor: string | ActivityPubActor, recurseIfNeeded = true) {
+ const actorUrl = getActorUrl(activityActor)
+
let actor = await ActorModel.loadByUrl(actorUrl)
// We don't have this actor in our database, fetch it on remote
try {
await actorInstance.Avatar.destroy({ transaction: t })
} catch (err) {
- logger.error('Cannot remove old avatar of actor %s.', actorInstance.url, err)
+ logger.error('Cannot remove old avatar of actor %s.', actorInstance.url, { err })
}
}
const { body } = await doRequest(options)
return body.totalItems ? body.totalItems : 0
} catch (err) {
- logger.warn('Cannot fetch remote actor count %s.', url, err)
+ logger.warn('Cannot fetch remote actor count %s.', url, { err })
return 0
}
}
return videoChannelCreated
}
-async function refreshActorIfNeeded (actor: ActorModel) {
+async function refreshActorIfNeeded (actor: ActorModel): Promise<ActorModel> {
if (!actor.isOutdated()) return actor
try {
return actor
})
} catch (err) {
- logger.warn('Cannot refresh actor.', err)
+ logger.warn('Cannot refresh actor.', { err })
return actor
}
}