getWeight: () => 30,
+ hookTokenValidity: (options) => {
+ if (options.type === 'refresh') {
+ return { valid: false }
+ }
+
+ if (options.type === 'access') {
+ const token = options.token
+ const now = new Date()
+ now.setTime(now.getTime() - 5000)
+
+ const createdAt = new Date(token.createdAt)
+
+ return { valid: createdAt.getTime() >= now.getTime() }
+ }
+
+ return { valid: true }
+ },
+
login (body) {
if (body.id === 'laguna' && body.password === 'laguna password') {
return Promise.resolve({
username: 'laguna',
- email: 'laguna@example.com'
+ email: 'laguna@example.com',
+ displayName: 'Laguna Loire',
+ adminFlags: 1,
+ videoQuota: 42000,
+ videoQuotaDaily: 42100,
+
+ // Always use new value except for videoQuotaDaily field
+ userUpdater: ({ fieldName, currentValue, newValue }) => {
+ if (fieldName === 'videoQuotaDaily') return currentValue
+
+ return newValue
+ }
})
}