Server: add association between author and user
This commit is contained in:
parent
319d072e8e
commit
4712081f2a
|
@ -84,11 +84,13 @@ function addRemoteVideo (videoToCreateData, fromHost, finalCallback) {
|
|||
const query = {
|
||||
where: {
|
||||
name: username,
|
||||
podId: pod.id
|
||||
podId: pod.id,
|
||||
userId: null
|
||||
},
|
||||
defaults: {
|
||||
name: username,
|
||||
podId: pod.id
|
||||
podId: pod.id,
|
||||
userId: null
|
||||
},
|
||||
transaction: t
|
||||
}
|
||||
|
|
|
@ -95,23 +95,26 @@ function addVideo (req, res, next) {
|
|||
},
|
||||
|
||||
function findOrCreateAuthor (t, callback) {
|
||||
const username = res.locals.oauth.token.user.username
|
||||
const user = res.locals.oauth.token.User
|
||||
|
||||
const query = {
|
||||
where: {
|
||||
name: username,
|
||||
podId: null
|
||||
name: user.username,
|
||||
podId: null,
|
||||
userId: user.id
|
||||
},
|
||||
defaults: {
|
||||
name: username,
|
||||
podId: null // null because it is OUR pod
|
||||
name: user.username,
|
||||
podId: null, // null because it is OUR pod
|
||||
userId: user.id
|
||||
},
|
||||
transaction: t
|
||||
}
|
||||
|
||||
db.Author.findOrCreate(query).asCallback(function (err, result) {
|
||||
// [ instance, wasCreated ]
|
||||
return callback(err, t, result[0])
|
||||
const authorInstance = result[0]
|
||||
|
||||
return callback(err, t, authorInstance)
|
||||
})
|
||||
},
|
||||
|
||||
|
|
|
@ -42,10 +42,10 @@ function checkMissedConfig () {
|
|||
}
|
||||
|
||||
function clientsExist (callback) {
|
||||
db.OAuthClient.list(function (err, clients) {
|
||||
db.OAuthClient.countTotal(function (err, totalClients) {
|
||||
if (err) return callback(err)
|
||||
|
||||
return callback(null, clients.length !== 0)
|
||||
return callback(null, totalClients !== 0)
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -23,6 +23,9 @@ module.exports = function (sequelize, DataTypes) {
|
|||
},
|
||||
{
|
||||
fields: [ 'podId' ]
|
||||
},
|
||||
{
|
||||
fields: [ 'userId' ]
|
||||
}
|
||||
],
|
||||
classMethods: {
|
||||
|
@ -44,4 +47,12 @@ function associate (models) {
|
|||
},
|
||||
onDelete: 'cascade'
|
||||
})
|
||||
|
||||
this.belongsTo(models.User, {
|
||||
foreignKey: {
|
||||
name: 'userId',
|
||||
allowNull: true
|
||||
},
|
||||
onDelete: 'cascade'
|
||||
})
|
||||
}
|
||||
|
|
|
@ -30,8 +30,8 @@ module.exports = function (sequelize, DataTypes) {
|
|||
}
|
||||
],
|
||||
classMethods: {
|
||||
countTotal,
|
||||
getByIdAndSecret,
|
||||
list,
|
||||
loadFirstClient
|
||||
}
|
||||
}
|
||||
|
@ -42,8 +42,8 @@ module.exports = function (sequelize, DataTypes) {
|
|||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
function list (callback) {
|
||||
return this.findAll().asCallback(callback)
|
||||
function countTotal (callback) {
|
||||
return this.count().asCallback(callback)
|
||||
}
|
||||
|
||||
function loadFirstClient (callback) {
|
||||
|
|
|
@ -94,6 +94,11 @@ function toFormatedJSON () {
|
|||
// ------------------------------ STATICS ------------------------------
|
||||
|
||||
function associate (models) {
|
||||
this.hasOne(models.Author, {
|
||||
foreignKey: 'userId',
|
||||
onDelete: 'cascade'
|
||||
})
|
||||
|
||||
this.hasMany(models.OAuthToken, {
|
||||
foreignKey: 'userId',
|
||||
onDelete: 'cascade'
|
||||
|
|
Loading…
Reference in New Issue