-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'chore/unit-test-and-linter-fixes' of github.com:internx…
…t/drive-server-wip into chore/unit-test-and-linter-fixes
- Loading branch information
Showing
22 changed files
with
831 additions
and
56 deletions.
There are no files selected for viewing
58 changes: 58 additions & 0 deletions
58
migrations/20230619014713-create-private-sharing-folder-table.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
'use strict'; | ||
|
||
const tableName = 'private_sharing_folder'; | ||
|
||
module.exports = { | ||
async up(queryInterface, Sequelize) { | ||
await queryInterface.createTable(tableName, { | ||
id: { | ||
type: Sequelize.UUID, | ||
defaultValue: Sequelize.UUID, | ||
allowNull: false, | ||
primaryKey: true, | ||
}, | ||
folder_id: { | ||
type: Sequelize.UUID, | ||
allowNull: false, | ||
references: { | ||
model: 'folders', | ||
key: 'uuid', | ||
}, | ||
}, | ||
owner_id: { | ||
type: Sequelize.STRING(36), | ||
allowNull: false, | ||
references: { | ||
model: 'users', | ||
key: 'uuid', | ||
}, | ||
}, | ||
shared_with: { | ||
type: Sequelize.STRING(36), | ||
allowNull: false, | ||
references: { | ||
model: 'users', | ||
key: 'uuid', | ||
}, | ||
}, | ||
encryption_key: { | ||
type: Sequelize.STRING, | ||
allowNull: false, | ||
}, | ||
created_at: { | ||
type: Sequelize.DATE, | ||
allowNull: false, | ||
defaultValue: Sequelize.NOW, | ||
}, | ||
updated_at: { | ||
type: Sequelize.DATE, | ||
allowNull: false, | ||
defaultValue: Sequelize.NOW, | ||
}, | ||
}); | ||
}, | ||
|
||
async down(queryInterface) { | ||
await queryInterface.sequelize.query(`DROP TABLE IF EXISTS ${tableName}`); | ||
}, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,6 +8,7 @@ const testUser = { | |
user_id: 'JohnDoe userId', | ||
name: 'John', | ||
lastname: 'Doe', | ||
uuid: v4(), | ||
email: '[email protected]', | ||
username: '[email protected]', | ||
bridge_user: '[email protected]', | ||
|
@@ -16,7 +17,6 @@ const testUser = { | |
h_key: 'john doe salt', | ||
referrer: null, | ||
referral_code: referralCode, | ||
uuid: null, | ||
credit: 0, | ||
welcome_pack: true, | ||
register_completed: true, | ||
|
@@ -26,6 +26,7 @@ const referredTestUser = { | |
user_id: 'JohnDoe userId', | ||
name: 'John', | ||
lastname: 'Doe', | ||
uuid: v4(), | ||
email: '[email protected]', | ||
username: '[email protected]', | ||
bridge_user: '[email protected]', | ||
|
@@ -34,33 +35,31 @@ const referredTestUser = { | |
h_key: 'john doe salt', | ||
referrer: referralCode, | ||
referral_code: v4(), | ||
uuid: null, | ||
credit: 0, | ||
welcome_pack: true, | ||
register_completed: true, | ||
}; | ||
|
||
module.exports = { | ||
async up(queryInterface, Sequelize) { | ||
/** | ||
* Add seed commands here. | ||
* | ||
* Example: | ||
* await queryInterface.bulkInsert('People', [{ | ||
* name: 'John Doe', | ||
* isBetaMember: false | ||
* }], {}); | ||
*/ | ||
await queryInterface.bulkInsert('users', [testUser, referredTestUser]); | ||
const existingUsers = await queryInterface.sequelize.query( | ||
'SELECT email FROM users WHERE email IN (:emails)', | ||
{ | ||
replacements: { emails: [testUser.email, referredTestUser.email] }, | ||
type: queryInterface.sequelize.QueryTypes.SELECT, | ||
}, | ||
); | ||
|
||
const newUsers = [testUser, referredTestUser].filter( | ||
(user) => !existingUsers.find((u) => u.email === user.email), | ||
); | ||
|
||
if (newUsers.length > 0) { | ||
await queryInterface.bulkInsert('users', newUsers, { returning: true }); | ||
} | ||
}, | ||
|
||
async down(queryInterface, Sequelize) { | ||
/** | ||
* Add commands to revert seed here. | ||
* | ||
* Example: | ||
* await queryInterface.bulkDelete('People', null, {}); | ||
*/ | ||
await queryInterface.bulkDelete( | ||
'users', | ||
{ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,49 +1,75 @@ | ||
'use strict'; | ||
|
||
const { v4 } = require('uuid'); | ||
const { Op } = require('sequelize'); | ||
|
||
const folderOne = { | ||
id: 1, | ||
parent_id: null, | ||
name: 'FolderOne', | ||
bucket: 'bucketOne', | ||
user_id: '20', | ||
uuid: v4(), | ||
plain_name: 'FolderOne', | ||
encrypt_version: '1.0', | ||
deleted: false, | ||
removed: false, | ||
created_at: new Date(), | ||
updated_at: new Date(), | ||
}; | ||
|
||
const folderTwo = { | ||
id: 2, | ||
parent_id: null, | ||
name: 'FolderTwo', | ||
bucket: 'bucketTwo', | ||
user_id: '21', | ||
uuid: v4(), | ||
plain_name: 'FolderTwo', | ||
encrypt_version: '1.0', | ||
deleted: false, | ||
removed: false, | ||
created_at: new Date(), | ||
updated_at: new Date(), | ||
}; | ||
const { Op, Sequelize } = require('sequelize'); | ||
|
||
module.exports = { | ||
async up(queryInterface, Sequelize) { | ||
async up(queryInterface) { | ||
const users = await queryInterface.sequelize.query( | ||
`SELECT * FROM users WHERE email IN (:emails)`, | ||
{ | ||
replacements: { emails: ['[email protected]', '[email protected]'] }, | ||
type: Sequelize.QueryTypes.SELECT, | ||
}, | ||
); | ||
|
||
if (!users || users.length !== 2) { | ||
throw new Error('No users found'); | ||
} | ||
|
||
const existingFolders = await queryInterface.sequelize.query( | ||
`SELECT * FROM folders WHERE name IN (:names)`, | ||
{ | ||
replacements: { names: ['FolderOne', 'FolderTwo'] }, | ||
type: Sequelize.QueryTypes.SELECT, | ||
}, | ||
); | ||
|
||
if (existingFolders.length > 0) { | ||
console.log( | ||
'Folders with the names "FolderOne" and/or "FolderTwo" already exist. Skipping creation.', | ||
); | ||
return; | ||
} | ||
|
||
const folderOne = { | ||
parent_id: null, | ||
name: 'FolderOne', | ||
bucket: 'bucketOne', | ||
user_id: users[0].id, | ||
uuid: v4(), | ||
plain_name: 'FolderOne', | ||
encrypt_version: '1.0', | ||
deleted: false, | ||
removed: false, | ||
created_at: new Date(), | ||
updated_at: new Date(), | ||
}; | ||
|
||
const folderTwo = { | ||
parent_id: null, | ||
name: 'FolderTwo', | ||
bucket: 'bucketTwo', | ||
user_id: users[1].id, | ||
uuid: v4(), | ||
plain_name: 'FolderTwo', | ||
encrypt_version: '1.0', | ||
deleted: false, | ||
removed: false, | ||
created_at: new Date(), | ||
updated_at: new Date(), | ||
}; | ||
|
||
await queryInterface.bulkInsert('folders', [folderOne, folderTwo]); | ||
}, | ||
|
||
async down(queryInterface, Sequelize) { | ||
await queryInterface.bulkDelete( | ||
'folders', | ||
{ | ||
id: { [Op.in]: [folderOne.id, folderTwo.id] }, | ||
uuid: { [Op.in]: [folderOne.uuid, folderTwo.uuid] }, | ||
}, | ||
{}, | ||
); | ||
}, | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
'use strict'; | ||
|
||
const { v4 } = require('uuid'); | ||
const { Op } = require('sequelize'); | ||
|
||
module.exports = { | ||
async up(queryInterface, Sequelize) { | ||
// Obtén los usuarios desde la base de datos | ||
const users = await queryInterface.sequelize.query( | ||
'SELECT * FROM users WHERE email IN (:emails)', | ||
{ | ||
replacements: { emails: ['[email protected]', '[email protected]'] }, | ||
type: Sequelize.QueryTypes.SELECT, | ||
}, | ||
); | ||
|
||
const shareOne = { | ||
id: 1, | ||
folder_id: 1, | ||
user_id: users[0].id, | ||
bucket: 'bucketOne', | ||
file_token: v4(), | ||
created_at: new Date(), | ||
updated_at: new Date(), | ||
}; | ||
|
||
const existingShare = await queryInterface.sequelize.query( | ||
'SELECT * FROM shares WHERE id = :id', | ||
{ | ||
replacements: { id: shareOne.id }, | ||
type: Sequelize.QueryTypes.SELECT, | ||
}, | ||
); | ||
|
||
if (existingShare.length === 0) { | ||
await queryInterface.bulkInsert('shares', [shareOne]); | ||
} | ||
}, | ||
|
||
async down(queryInterface, Sequelize) { | ||
await queryInterface.bulkDelete('shares', null, {}); | ||
}, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
'use strict'; | ||
|
||
const { v4 } = require('uuid'); | ||
const { Op, Sequelize } = require('sequelize'); | ||
|
||
module.exports = { | ||
async up(queryInterface) { | ||
const users = await queryInterface.sequelize.query( | ||
`SELECT * FROM users WHERE email IN (:emails)`, | ||
{ | ||
replacements: { emails: ['[email protected]', '[email protected]'] }, | ||
type: Sequelize.QueryTypes.SELECT, | ||
}, | ||
); | ||
|
||
const folders = await queryInterface.sequelize.query( | ||
`SELECT * FROM folders WHERE name IN (:names)`, | ||
{ | ||
replacements: { names: ['FolderOne', 'FolderTwo'] }, | ||
type: Sequelize.QueryTypes.SELECT, | ||
}, | ||
); | ||
|
||
if (!users || users.length < 2 || !folders || folders.length < 2) { | ||
throw new Error('Required users or folders not found.'); | ||
} | ||
|
||
const folderOne = folders.find((f) => f.name === 'FolderOne'); | ||
const folderTwo = folders.find((f) => f.name === 'FolderTwo'); | ||
|
||
const sharingFolderOne = { | ||
id: v4(), | ||
folder_id: folderOne.uuid, | ||
owner_id: users[0].uuid, | ||
shared_with: users[1].uuid, | ||
encryption_key: 'clave cifrada', | ||
created_at: new Date(), | ||
updated_at: new Date(), | ||
}; | ||
|
||
const sharingFolderTwo = { | ||
id: v4(), | ||
folder_id: folderTwo.uuid, | ||
owner_id: users[1].uuid, | ||
shared_with: users[0].uuid, | ||
encryption_key: 'clave cifrada', | ||
created_at: new Date(), | ||
updated_at: new Date(), | ||
}; | ||
|
||
await queryInterface.bulkInsert('private_sharing_folder', [ | ||
sharingFolderOne, | ||
sharingFolderTwo, | ||
]); | ||
}, | ||
|
||
async down(queryInterface, Sequelize) { | ||
await queryInterface.bulkDelete( | ||
'private_sharing_folder', | ||
{ | ||
id: { [Op.in]: [sharingFolderOne.id, sharingFolderTwo.id] }, | ||
}, | ||
{}, | ||
); | ||
}, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
export type OrderBy = | ||
| 'views:ASC' | ||
| 'views:DESC' | ||
| 'createdAt:ASC' | ||
| 'createdAt:DESC'; |
Oops, something went wrong.