schema updated and due to uuid constarin
This commit is contained in:
parent
af72fa4c98
commit
4bc0ba77db
@ -908,7 +908,7 @@ async function getPerformanceData(req, res) {
|
|||||||
const getUserReport = async (req, res) => {
|
const getUserReport = async (req, res) => {
|
||||||
try {
|
try {
|
||||||
const { sdate, edate, dateFormat, startIndex } = req.query;
|
const { sdate, edate, dateFormat, startIndex } = req.query;
|
||||||
const userId = req.user.id;
|
const userId = req.user.uuid;
|
||||||
|
|
||||||
const zohoClient = new ZohoClient(userId);
|
const zohoClient = new ZohoClient(userId);
|
||||||
const attendanceReport = await zohoClient.getUserReport({
|
const attendanceReport = await zohoClient.getUserReport({
|
||||||
@ -927,7 +927,7 @@ const getUserReport = async (req, res) => {
|
|||||||
// Get leave tracker report
|
// Get leave tracker report
|
||||||
const getLeaveTrackerReport = async (req, res) => {
|
const getLeaveTrackerReport = async (req, res) => {
|
||||||
try {
|
try {
|
||||||
const userId = req.user.id;
|
const userId = req.user.uuid;
|
||||||
|
|
||||||
const zohoClient = new ZohoClient(userId);
|
const zohoClient = new ZohoClient(userId);
|
||||||
const leaveTrackerReport = await zohoClient.getLeaveTrackerReport();
|
const leaveTrackerReport = await zohoClient.getLeaveTrackerReport();
|
||||||
@ -941,7 +941,7 @@ const getLeaveTrackerReport = async (req, res) => {
|
|||||||
// Get holidays
|
// Get holidays
|
||||||
const getHolidays = async (req, res) => {
|
const getHolidays = async (req, res) => {
|
||||||
try {
|
try {
|
||||||
const userId = req.user.id;
|
const userId = req.user.uuid;
|
||||||
|
|
||||||
const zohoClient = new ZohoClient(userId);
|
const zohoClient = new ZohoClient(userId);
|
||||||
const holidays = await zohoClient.getHolidays();
|
const holidays = await zohoClient.getHolidays();
|
||||||
|
|||||||
@ -20,7 +20,7 @@ class ReportsController {
|
|||||||
|
|
||||||
// Base filters
|
// Base filters
|
||||||
const baseFilters = {
|
const baseFilters = {
|
||||||
user_id: userId,
|
user_uuid: userId,
|
||||||
provider: 'zoho',
|
provider: 'zoho',
|
||||||
...dateFilter,
|
...dateFilter,
|
||||||
...ownerFilter
|
...ownerFilter
|
||||||
|
|||||||
@ -58,7 +58,7 @@ async function exchangeZohoToken(req, res) {
|
|||||||
|
|
||||||
const expiresAt = expires_in ? new Date(Date.now() + expires_in * 1000) : null;
|
const expiresAt = expires_in ? new Date(Date.now() + expires_in * 1000) : null;
|
||||||
await userAuthTokenRepo.upsertToken({
|
await userAuthTokenRepo.upsertToken({
|
||||||
userId: id,
|
userUuid: id,
|
||||||
serviceName: service_name,
|
serviceName: service_name,
|
||||||
accessToken: encrypt(access_token),
|
accessToken: encrypt(access_token),
|
||||||
refreshToken: refresh_token? encrypt(refresh_token) : null,
|
refreshToken: refresh_token? encrypt(refresh_token) : null,
|
||||||
|
|||||||
@ -7,11 +7,11 @@ class UserAuthToken extends Model {}
|
|||||||
UserAuthToken.init(
|
UserAuthToken.init(
|
||||||
{
|
{
|
||||||
id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true },
|
id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true },
|
||||||
userId: {
|
userUuid: {
|
||||||
field: 'user_id',
|
field: 'user_uuid',
|
||||||
type: DataTypes.INTEGER,
|
type: DataTypes.CHAR(36),
|
||||||
allowNull: false,
|
allowNull: false,
|
||||||
references: { model: 'users', key: 'id' },
|
references: { model: 'users', key: 'uuid' },
|
||||||
onDelete: 'CASCADE'
|
onDelete: 'CASCADE'
|
||||||
},
|
},
|
||||||
serviceName: {
|
serviceName: {
|
||||||
@ -32,13 +32,13 @@ UserAuthToken.init(
|
|||||||
timestamps: true,
|
timestamps: true,
|
||||||
paranoid: false,
|
paranoid: false,
|
||||||
indexes: [
|
indexes: [
|
||||||
{ fields: ['user_id'] },
|
{ fields: ['user_uuid'] },
|
||||||
{ fields: ['service_name'] }
|
{ fields: ['service_name'] }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
UserAuthToken.belongsTo(User, { foreignKey: 'userId', as: 'user' });
|
UserAuthToken.belongsTo(User, { foreignKey: 'userUuid', as: 'user' });
|
||||||
|
|
||||||
module.exports = UserAuthToken;
|
module.exports = UserAuthToken;
|
||||||
|
|
||||||
|
|||||||
@ -12,8 +12,8 @@ const ZohoAccountsBulk = sequelize.define('ZohoAccountsBulk', {
|
|||||||
type: DataTypes.STRING(255),
|
type: DataTypes.STRING(255),
|
||||||
allowNull: true
|
allowNull: true
|
||||||
},
|
},
|
||||||
user_id: {
|
user_uuid: {
|
||||||
type: DataTypes.STRING(255),
|
type: DataTypes.CHAR(36),
|
||||||
allowNull: false
|
allowNull: false
|
||||||
},
|
},
|
||||||
provider: {
|
provider: {
|
||||||
@ -63,7 +63,7 @@ const ZohoAccountsBulk = sequelize.define('ZohoAccountsBulk', {
|
|||||||
createdAt: 'created_at',
|
createdAt: 'created_at',
|
||||||
updatedAt: 'updated_at',
|
updatedAt: 'updated_at',
|
||||||
indexes: [
|
indexes: [
|
||||||
{ fields: ['user_id', 'provider'] },
|
{ fields: ['user_uuid', 'provider'] },
|
||||||
{ fields: ['bulk_job_id'] },
|
{ fields: ['bulk_job_id'] },
|
||||||
{ fields: ['created_time'] }
|
{ fields: ['created_time'] }
|
||||||
]
|
]
|
||||||
|
|||||||
@ -7,8 +7,8 @@ const ZohoBulkReadJobs = sequelize.define('ZohoBulkReadJobs', {
|
|||||||
primaryKey: true,
|
primaryKey: true,
|
||||||
allowNull: false
|
allowNull: false
|
||||||
},
|
},
|
||||||
user_id: {
|
user_uuid: {
|
||||||
type: DataTypes.STRING(255),
|
type: DataTypes.CHAR(36),
|
||||||
allowNull: false
|
allowNull: false
|
||||||
},
|
},
|
||||||
provider: {
|
provider: {
|
||||||
@ -61,7 +61,7 @@ const ZohoBulkReadJobs = sequelize.define('ZohoBulkReadJobs', {
|
|||||||
createdAt: 'created_at',
|
createdAt: 'created_at',
|
||||||
updatedAt: 'updated_at',
|
updatedAt: 'updated_at',
|
||||||
indexes: [
|
indexes: [
|
||||||
{ fields: ['user_id', 'provider'] },
|
{ fields: ['user_uuid', 'provider'] },
|
||||||
{ fields: ['module'] },
|
{ fields: ['module'] },
|
||||||
{ fields: ['status'] }
|
{ fields: ['status'] }
|
||||||
]
|
]
|
||||||
|
|||||||
@ -12,8 +12,8 @@ const ZohoContactsBulk = sequelize.define('ZohoContactsBulk', {
|
|||||||
type: DataTypes.STRING(255),
|
type: DataTypes.STRING(255),
|
||||||
allowNull: true
|
allowNull: true
|
||||||
},
|
},
|
||||||
user_id: {
|
user_uuid: {
|
||||||
type: DataTypes.STRING(255),
|
type: DataTypes.CHAR(36),
|
||||||
allowNull: false
|
allowNull: false
|
||||||
},
|
},
|
||||||
provider: {
|
provider: {
|
||||||
@ -71,7 +71,7 @@ const ZohoContactsBulk = sequelize.define('ZohoContactsBulk', {
|
|||||||
createdAt: 'created_at',
|
createdAt: 'created_at',
|
||||||
updatedAt: 'updated_at',
|
updatedAt: 'updated_at',
|
||||||
indexes: [
|
indexes: [
|
||||||
{ fields: ['user_id', 'provider'] },
|
{ fields: ['user_uuid', 'provider'] },
|
||||||
{ fields: ['bulk_job_id'] },
|
{ fields: ['bulk_job_id'] },
|
||||||
{ fields: ['created_time'] }
|
{ fields: ['created_time'] }
|
||||||
]
|
]
|
||||||
|
|||||||
@ -12,8 +12,8 @@ const ZohoInvoicesBulk = sequelize.define('ZohoInvoicesBulk', {
|
|||||||
type: DataTypes.STRING(255),
|
type: DataTypes.STRING(255),
|
||||||
allowNull: true
|
allowNull: true
|
||||||
},
|
},
|
||||||
user_id: {
|
user_uuid: {
|
||||||
type: DataTypes.STRING(255),
|
type: DataTypes.CHAR(36),
|
||||||
allowNull: false
|
allowNull: false
|
||||||
},
|
},
|
||||||
provider: {
|
provider: {
|
||||||
@ -67,7 +67,7 @@ const ZohoInvoicesBulk = sequelize.define('ZohoInvoicesBulk', {
|
|||||||
createdAt: 'created_at',
|
createdAt: 'created_at',
|
||||||
updatedAt: 'updated_at',
|
updatedAt: 'updated_at',
|
||||||
indexes: [
|
indexes: [
|
||||||
{ fields: ['user_id', 'provider'] },
|
{ fields: ['user_uuid', 'provider'] },
|
||||||
{ fields: ['bulk_job_id'] },
|
{ fields: ['bulk_job_id'] },
|
||||||
{ fields: ['created_time'] }
|
{ fields: ['created_time'] }
|
||||||
]
|
]
|
||||||
|
|||||||
@ -12,8 +12,8 @@ const ZohoLeadsBulk = sequelize.define('ZohoLeadsBulk', {
|
|||||||
type: DataTypes.STRING(255),
|
type: DataTypes.STRING(255),
|
||||||
allowNull: true
|
allowNull: true
|
||||||
},
|
},
|
||||||
user_id: {
|
user_uuid: {
|
||||||
type: DataTypes.STRING(255),
|
type: DataTypes.CHAR(36),
|
||||||
allowNull: false
|
allowNull: false
|
||||||
},
|
},
|
||||||
provider: {
|
provider: {
|
||||||
@ -67,7 +67,7 @@ const ZohoLeadsBulk = sequelize.define('ZohoLeadsBulk', {
|
|||||||
createdAt: 'created_at',
|
createdAt: 'created_at',
|
||||||
updatedAt: 'updated_at',
|
updatedAt: 'updated_at',
|
||||||
indexes: [
|
indexes: [
|
||||||
{ fields: ['user_id', 'provider'] },
|
{ fields: ['user_uuid', 'provider'] },
|
||||||
{ fields: ['bulk_job_id'] },
|
{ fields: ['bulk_job_id'] },
|
||||||
{ fields: ['created_time'] }
|
{ fields: ['created_time'] }
|
||||||
]
|
]
|
||||||
|
|||||||
@ -12,8 +12,8 @@ const ZohoPurchaseOrdersBulk = sequelize.define('ZohoPurchaseOrdersBulk', {
|
|||||||
type: DataTypes.STRING(255),
|
type: DataTypes.STRING(255),
|
||||||
allowNull: true
|
allowNull: true
|
||||||
},
|
},
|
||||||
user_id: {
|
user_uuid: {
|
||||||
type: DataTypes.STRING(255),
|
type: DataTypes.CHAR(36),
|
||||||
allowNull: false
|
allowNull: false
|
||||||
},
|
},
|
||||||
provider: {
|
provider: {
|
||||||
@ -63,7 +63,7 @@ const ZohoPurchaseOrdersBulk = sequelize.define('ZohoPurchaseOrdersBulk', {
|
|||||||
createdAt: 'created_at',
|
createdAt: 'created_at',
|
||||||
updatedAt: 'updated_at',
|
updatedAt: 'updated_at',
|
||||||
indexes: [
|
indexes: [
|
||||||
{ fields: ['user_id', 'provider'] },
|
{ fields: ['user_uuid', 'provider'] },
|
||||||
{ fields: ['bulk_job_id'] },
|
{ fields: ['bulk_job_id'] },
|
||||||
{ fields: ['created_time'] }
|
{ fields: ['created_time'] }
|
||||||
]
|
]
|
||||||
|
|||||||
@ -12,8 +12,8 @@ const ZohoSalesOrdersBulk = sequelize.define('ZohoSalesOrdersBulk', {
|
|||||||
type: DataTypes.STRING(255),
|
type: DataTypes.STRING(255),
|
||||||
allowNull: true
|
allowNull: true
|
||||||
},
|
},
|
||||||
user_id: {
|
user_uuid: {
|
||||||
type: DataTypes.STRING(255),
|
type: DataTypes.CHAR(36),
|
||||||
allowNull: false
|
allowNull: false
|
||||||
},
|
},
|
||||||
provider: {
|
provider: {
|
||||||
@ -63,7 +63,7 @@ const ZohoSalesOrdersBulk = sequelize.define('ZohoSalesOrdersBulk', {
|
|||||||
createdAt: 'created_at',
|
createdAt: 'created_at',
|
||||||
updatedAt: 'updated_at',
|
updatedAt: 'updated_at',
|
||||||
indexes: [
|
indexes: [
|
||||||
{ fields: ['user_id', 'provider'] },
|
{ fields: ['user_uuid', 'provider'] },
|
||||||
{ fields: ['bulk_job_id'] },
|
{ fields: ['bulk_job_id'] },
|
||||||
{ fields: ['created_time'] }
|
{ fields: ['created_time'] }
|
||||||
]
|
]
|
||||||
|
|||||||
@ -12,8 +12,8 @@ const ZohoTasksBulk = sequelize.define('ZohoTasksBulk', {
|
|||||||
type: DataTypes.STRING(255),
|
type: DataTypes.STRING(255),
|
||||||
allowNull: true
|
allowNull: true
|
||||||
},
|
},
|
||||||
user_id: {
|
user_uuid: {
|
||||||
type: DataTypes.STRING(255),
|
type: DataTypes.CHAR(36),
|
||||||
allowNull: false
|
allowNull: false
|
||||||
},
|
},
|
||||||
provider: {
|
provider: {
|
||||||
@ -59,7 +59,7 @@ const ZohoTasksBulk = sequelize.define('ZohoTasksBulk', {
|
|||||||
createdAt: 'created_at',
|
createdAt: 'created_at',
|
||||||
updatedAt: 'updated_at',
|
updatedAt: 'updated_at',
|
||||||
indexes: [
|
indexes: [
|
||||||
{ fields: ['user_id', 'provider'] },
|
{ fields: ['user_uuid', 'provider'] },
|
||||||
{ fields: ['bulk_job_id'] },
|
{ fields: ['bulk_job_id'] },
|
||||||
{ fields: ['created_time'] }
|
{ fields: ['created_time'] }
|
||||||
]
|
]
|
||||||
|
|||||||
@ -12,8 +12,8 @@ const ZohoVendorsBulk = sequelize.define('ZohoVendorsBulk', {
|
|||||||
type: DataTypes.STRING(255),
|
type: DataTypes.STRING(255),
|
||||||
allowNull: true
|
allowNull: true
|
||||||
},
|
},
|
||||||
user_id: {
|
user_uuid: {
|
||||||
type: DataTypes.STRING(255),
|
type: DataTypes.CHAR(36),
|
||||||
allowNull: false
|
allowNull: false
|
||||||
},
|
},
|
||||||
provider: {
|
provider: {
|
||||||
@ -55,7 +55,7 @@ const ZohoVendorsBulk = sequelize.define('ZohoVendorsBulk', {
|
|||||||
createdAt: 'created_at',
|
createdAt: 'created_at',
|
||||||
updatedAt: 'updated_at',
|
updatedAt: 'updated_at',
|
||||||
indexes: [
|
indexes: [
|
||||||
{ fields: ['user_id', 'provider'] },
|
{ fields: ['user_uuid', 'provider'] },
|
||||||
{ fields: ['bulk_job_id'] },
|
{ fields: ['bulk_job_id'] },
|
||||||
{ fields: ['created_time'] }
|
{ fields: ['created_time'] }
|
||||||
]
|
]
|
||||||
|
|||||||
@ -4,14 +4,14 @@ async function createToken(payload) {
|
|||||||
return UserAuthToken.create(payload);
|
return UserAuthToken.create(payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function findByUserAndService(userId, serviceName) {
|
async function findByUserAndService(userUuid, serviceName) {
|
||||||
return UserAuthToken.findOne({ where: { userId, serviceName } });
|
return UserAuthToken.findOne({ where: { userUuid, serviceName } });
|
||||||
}
|
}
|
||||||
|
|
||||||
async function upsertToken(payload) {
|
async function upsertToken(payload) {
|
||||||
const { userId, serviceName } = payload;
|
const { userUuid, serviceName } = payload;
|
||||||
const [token, created] = await UserAuthToken.findOrCreate({
|
const [token, created] = await UserAuthToken.findOrCreate({
|
||||||
where: { userId, serviceName },
|
where: { userUuid, serviceName },
|
||||||
defaults: payload
|
defaults: payload
|
||||||
});
|
});
|
||||||
if (!created) {
|
if (!created) {
|
||||||
|
|||||||
@ -73,7 +73,7 @@ class ZohoBulkReadRepository {
|
|||||||
|
|
||||||
const result = await model.destroy({
|
const result = await model.destroy({
|
||||||
where: {
|
where: {
|
||||||
user_id: userId,
|
user_uuid: userId,
|
||||||
provider: 'zoho',
|
provider: 'zoho',
|
||||||
bulk_job_id: jobId
|
bulk_job_id: jobId
|
||||||
}
|
}
|
||||||
@ -101,7 +101,7 @@ class ZohoBulkReadRepository {
|
|||||||
|
|
||||||
const records = await model.findAll({
|
const records = await model.findAll({
|
||||||
where: {
|
where: {
|
||||||
user_id: userId,
|
user_uuid: userId,
|
||||||
provider: 'zoho'
|
provider: 'zoho'
|
||||||
},
|
},
|
||||||
limit: parseInt(limit),
|
limit: parseInt(limit),
|
||||||
@ -128,7 +128,7 @@ class ZohoBulkReadRepository {
|
|||||||
|
|
||||||
const count = await model.count({
|
const count = await model.count({
|
||||||
where: {
|
where: {
|
||||||
user_id: userId,
|
user_uuid: userId,
|
||||||
provider: 'zoho'
|
provider: 'zoho'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -152,7 +152,7 @@ class ZohoBulkReadRepository {
|
|||||||
|
|
||||||
const job = await ZohoBulkReadJobs.create({
|
const job = await ZohoBulkReadJobs.create({
|
||||||
id: jobData.id,
|
id: jobData.id,
|
||||||
user_id: jobData.user_id,
|
user_uuid: jobData.user_uuid,
|
||||||
provider: 'zoho',
|
provider: 'zoho',
|
||||||
module: jobData.module,
|
module: jobData.module,
|
||||||
operation: jobData.operation,
|
operation: jobData.operation,
|
||||||
@ -224,7 +224,7 @@ class ZohoBulkReadRepository {
|
|||||||
const { limit = 50, offset = 0, status } = options;
|
const { limit = 50, offset = 0, status } = options;
|
||||||
|
|
||||||
const whereClause = {
|
const whereClause = {
|
||||||
user_id: userId,
|
user_uuid: userId,
|
||||||
provider: 'zoho'
|
provider: 'zoho'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
CREATE TABLE IF NOT EXISTS users (
|
CREATE TABLE IF NOT EXISTS users (
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
id INT AUTO_INCREMENT,
|
||||||
uuid CHAR(36) NOT NULL UNIQUE,
|
uuid CHAR(36) NOT NULL UNIQUE,
|
||||||
email VARCHAR(255) NOT NULL UNIQUE,
|
email VARCHAR(255) NOT NULL UNIQUE,
|
||||||
password_hash VARCHAR(255) NOT NULL,
|
password_hash VARCHAR(255) NOT NULL,
|
||||||
@ -10,5 +10,7 @@ CREATE TABLE IF NOT EXISTS users (
|
|||||||
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
||||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
deleted_at DATETIME NULL
|
deleted_at DATETIME NULL,
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
UNIQUE KEY (uuid)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
CREATE TABLE IF NOT EXISTS user_auth_tokens (
|
CREATE TABLE IF NOT EXISTS user_auth_tokens (
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
user_id CHAR(36) NOT NULL,
|
user_uuid CHAR(36) NOT NULL,
|
||||||
service_name ENUM('zoho','keka','bamboohr','hubspot','other') NOT NULL,
|
service_name ENUM('zoho','keka','bamboohr','hubspot','other') NOT NULL,
|
||||||
access_token TEXT NOT NULL,
|
access_token TEXT NOT NULL,
|
||||||
refresh_token TEXT NULL,
|
refresh_token TEXT NULL,
|
||||||
expires_at DATETIME NULL,
|
expires_at DATETIME NULL,
|
||||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
CONSTRAINT fk_user_auth_tokens_user FOREIGN KEY (user_id) REFERENCES users(uuid) ON DELETE CASCADE
|
CONSTRAINT fk_user_auth_tokens_user FOREIGN KEY (user_uuid) REFERENCES users(uuid) ON DELETE CASCADE
|
||||||
);
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
CREATE TABLE IF NOT EXISTS zoho_contacts_bulk (
|
CREATE TABLE IF NOT EXISTS zoho_contacts_bulk (
|
||||||
internal_id INT AUTO_INCREMENT PRIMARY KEY,
|
internal_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
zoho_id VARCHAR(255),
|
zoho_id VARCHAR(255),
|
||||||
user_id VARCHAR(255) NOT NULL,
|
user_uuid CHAR(36) NOT NULL,
|
||||||
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
||||||
first_name VARCHAR(255),
|
first_name VARCHAR(255),
|
||||||
last_name VARCHAR(255),
|
last_name VARCHAR(255),
|
||||||
@ -19,7 +19,8 @@ CREATE TABLE IF NOT EXISTS zoho_contacts_bulk (
|
|||||||
bulk_job_id VARCHAR(255),
|
bulk_job_id VARCHAR(255),
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
INDEX idx_user_provider (user_id, provider),
|
INDEX idx_user_provider (user_uuid, provider),
|
||||||
|
CONSTRAINT fk_zoho_contacts_bulk_user FOREIGN KEY (user_uuid) REFERENCES users(uuid) ON DELETE CASCADE,
|
||||||
INDEX idx_bulk_job (bulk_job_id),
|
INDEX idx_bulk_job (bulk_job_id),
|
||||||
INDEX idx_created_time (created_time),
|
INDEX idx_created_time (created_time),
|
||||||
INDEX idx_zoho_id (zoho_id)
|
INDEX idx_zoho_id (zoho_id)
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
CREATE TABLE IF NOT EXISTS zoho_leads_bulk (
|
CREATE TABLE IF NOT EXISTS zoho_leads_bulk (
|
||||||
internal_id INT AUTO_INCREMENT PRIMARY KEY,
|
internal_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
zoho_id VARCHAR(255),
|
zoho_id VARCHAR(255),
|
||||||
user_id VARCHAR(255) NOT NULL,
|
user_uuid CHAR(36) NOT NULL,
|
||||||
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
||||||
first_name VARCHAR(255),
|
first_name VARCHAR(255),
|
||||||
last_name VARCHAR(255),
|
last_name VARCHAR(255),
|
||||||
@ -18,7 +18,8 @@ CREATE TABLE IF NOT EXISTS zoho_leads_bulk (
|
|||||||
bulk_job_id VARCHAR(255),
|
bulk_job_id VARCHAR(255),
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
INDEX idx_user_provider (user_id, provider),
|
INDEX idx_user_provider (user_uuid, provider),
|
||||||
|
CONSTRAINT fk_zoho_leads_bulk_user FOREIGN KEY (user_uuid) REFERENCES users(uuid) ON DELETE CASCADE,
|
||||||
INDEX idx_bulk_job (bulk_job_id),
|
INDEX idx_bulk_job (bulk_job_id),
|
||||||
INDEX idx_created_time (created_time),
|
INDEX idx_created_time (created_time),
|
||||||
INDEX idx_zoho_id (zoho_id)
|
INDEX idx_zoho_id (zoho_id)
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
CREATE TABLE IF NOT EXISTS zoho_accounts_bulk (
|
CREATE TABLE IF NOT EXISTS zoho_accounts_bulk (
|
||||||
internal_id INT AUTO_INCREMENT PRIMARY KEY,
|
internal_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
zoho_id VARCHAR(255),
|
zoho_id VARCHAR(255),
|
||||||
user_id VARCHAR(255) NOT NULL,
|
user_uuid CHAR(36) NOT NULL,
|
||||||
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
||||||
account_name VARCHAR(255),
|
account_name VARCHAR(255),
|
||||||
phone VARCHAR(255),
|
phone VARCHAR(255),
|
||||||
@ -17,7 +17,8 @@ CREATE TABLE IF NOT EXISTS zoho_accounts_bulk (
|
|||||||
bulk_job_id VARCHAR(255),
|
bulk_job_id VARCHAR(255),
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
INDEX idx_user_provider (user_id, provider),
|
INDEX idx_user_provider (user_uuid, provider),
|
||||||
|
CONSTRAINT fk_zoho_accounts_bulk_user FOREIGN KEY (user_uuid) REFERENCES users(uuid) ON DELETE CASCADE,
|
||||||
INDEX idx_bulk_job (bulk_job_id),
|
INDEX idx_bulk_job (bulk_job_id),
|
||||||
INDEX idx_created_time (created_time),
|
INDEX idx_created_time (created_time),
|
||||||
INDEX idx_zoho_id (zoho_id)
|
INDEX idx_zoho_id (zoho_id)
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
CREATE TABLE IF NOT EXISTS zoho_tasks_bulk (
|
CREATE TABLE IF NOT EXISTS zoho_tasks_bulk (
|
||||||
internal_id INT AUTO_INCREMENT PRIMARY KEY,
|
internal_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
zoho_id VARCHAR(255),
|
zoho_id VARCHAR(255),
|
||||||
user_id VARCHAR(255) NOT NULL,
|
user_uuid CHAR(36) NOT NULL,
|
||||||
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
||||||
subject VARCHAR(500),
|
subject VARCHAR(500),
|
||||||
owner VARCHAR(255),
|
owner VARCHAR(255),
|
||||||
@ -16,7 +16,8 @@ CREATE TABLE IF NOT EXISTS zoho_tasks_bulk (
|
|||||||
bulk_job_id VARCHAR(255),
|
bulk_job_id VARCHAR(255),
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
INDEX idx_user_provider (user_id, provider),
|
INDEX idx_user_provider (user_uuid, provider),
|
||||||
|
CONSTRAINT fk_zoho_tasks_bulk_user FOREIGN KEY (user_uuid) REFERENCES users(uuid) ON DELETE CASCADE,
|
||||||
INDEX idx_bulk_job (bulk_job_id),
|
INDEX idx_bulk_job (bulk_job_id),
|
||||||
INDEX idx_created_time (created_time),
|
INDEX idx_created_time (created_time),
|
||||||
INDEX idx_zoho_id (zoho_id)
|
INDEX idx_zoho_id (zoho_id)
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
CREATE TABLE IF NOT EXISTS zoho_vendors_bulk (
|
CREATE TABLE IF NOT EXISTS zoho_vendors_bulk (
|
||||||
internal_id INT AUTO_INCREMENT PRIMARY KEY,
|
internal_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
zoho_id VARCHAR(255),
|
zoho_id VARCHAR(255),
|
||||||
user_id VARCHAR(255) NOT NULL,
|
user_uuid CHAR(36) NOT NULL,
|
||||||
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
||||||
vendor_name VARCHAR(255),
|
vendor_name VARCHAR(255),
|
||||||
email VARCHAR(255),
|
email VARCHAR(255),
|
||||||
@ -15,7 +15,8 @@ CREATE TABLE IF NOT EXISTS zoho_vendors_bulk (
|
|||||||
bulk_job_id VARCHAR(255),
|
bulk_job_id VARCHAR(255),
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
INDEX idx_user_provider (user_id, provider),
|
INDEX idx_user_provider (user_uuid, provider),
|
||||||
|
CONSTRAINT fk_zoho_vendors_bulk_user FOREIGN KEY (user_uuid) REFERENCES users(uuid) ON DELETE CASCADE,
|
||||||
INDEX idx_bulk_job (bulk_job_id),
|
INDEX idx_bulk_job (bulk_job_id),
|
||||||
INDEX idx_created_time (created_time),
|
INDEX idx_created_time (created_time),
|
||||||
INDEX idx_zoho_id (zoho_id)
|
INDEX idx_zoho_id (zoho_id)
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
CREATE TABLE IF NOT EXISTS zoho_invoices_bulk (
|
CREATE TABLE IF NOT EXISTS zoho_invoices_bulk (
|
||||||
internal_id INT AUTO_INCREMENT PRIMARY KEY,
|
internal_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
zoho_id VARCHAR(255),
|
zoho_id VARCHAR(255),
|
||||||
user_id VARCHAR(255) NOT NULL,
|
user_uuid CHAR(36) NOT NULL,
|
||||||
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
||||||
invoice_number VARCHAR(255),
|
invoice_number VARCHAR(255),
|
||||||
invoice_date DATE,
|
invoice_date DATE,
|
||||||
@ -18,7 +18,8 @@ CREATE TABLE IF NOT EXISTS zoho_invoices_bulk (
|
|||||||
bulk_job_id VARCHAR(255),
|
bulk_job_id VARCHAR(255),
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
INDEX idx_user_provider (user_id, provider),
|
INDEX idx_user_provider (user_uuid, provider),
|
||||||
|
CONSTRAINT fk_zoho_invoices_bulk_user FOREIGN KEY (user_uuid) REFERENCES users(uuid) ON DELETE CASCADE,
|
||||||
INDEX idx_bulk_job (bulk_job_id),
|
INDEX idx_bulk_job (bulk_job_id),
|
||||||
INDEX idx_created_time (created_time),
|
INDEX idx_created_time (created_time),
|
||||||
INDEX idx_zoho_id (zoho_id)
|
INDEX idx_zoho_id (zoho_id)
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
CREATE TABLE IF NOT EXISTS zoho_sales_orders_bulk (
|
CREATE TABLE IF NOT EXISTS zoho_sales_orders_bulk (
|
||||||
internal_id INT AUTO_INCREMENT PRIMARY KEY,
|
internal_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
zoho_id VARCHAR(255),
|
zoho_id VARCHAR(255),
|
||||||
user_id VARCHAR(255) NOT NULL,
|
user_uuid CHAR(36) NOT NULL,
|
||||||
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
||||||
sales_order_number VARCHAR(255),
|
sales_order_number VARCHAR(255),
|
||||||
subject VARCHAR(500),
|
subject VARCHAR(500),
|
||||||
@ -17,7 +17,8 @@ CREATE TABLE IF NOT EXISTS zoho_sales_orders_bulk (
|
|||||||
bulk_job_id VARCHAR(255),
|
bulk_job_id VARCHAR(255),
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
INDEX idx_user_provider (user_id, provider),
|
INDEX idx_user_provider (user_uuid, provider),
|
||||||
|
CONSTRAINT fk_zoho_sales_orders_bulk_user FOREIGN KEY (user_uuid) REFERENCES users(uuid) ON DELETE CASCADE,
|
||||||
INDEX idx_bulk_job (bulk_job_id),
|
INDEX idx_bulk_job (bulk_job_id),
|
||||||
INDEX idx_created_time (created_time),
|
INDEX idx_created_time (created_time),
|
||||||
INDEX idx_zoho_id (zoho_id)
|
INDEX idx_zoho_id (zoho_id)
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
CREATE TABLE IF NOT EXISTS zoho_purchase_orders_bulk (
|
CREATE TABLE IF NOT EXISTS zoho_purchase_orders_bulk (
|
||||||
internal_id INT AUTO_INCREMENT PRIMARY KEY,
|
internal_id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
zoho_id VARCHAR(255),
|
zoho_id VARCHAR(255),
|
||||||
user_id VARCHAR(255) NOT NULL,
|
user_uuid CHAR(36) NOT NULL,
|
||||||
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
||||||
purchase_order_number VARCHAR(255),
|
purchase_order_number VARCHAR(255),
|
||||||
subject VARCHAR(500),
|
subject VARCHAR(500),
|
||||||
@ -17,7 +17,8 @@ CREATE TABLE IF NOT EXISTS zoho_purchase_orders_bulk (
|
|||||||
bulk_job_id VARCHAR(255),
|
bulk_job_id VARCHAR(255),
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
INDEX idx_user_provider (user_id, provider),
|
INDEX idx_user_provider (user_uuid, provider),
|
||||||
|
CONSTRAINT fk_zoho_purchase_orders_bulk_user FOREIGN KEY (user_uuid) REFERENCES users(uuid) ON DELETE CASCADE,
|
||||||
INDEX idx_bulk_job (bulk_job_id),
|
INDEX idx_bulk_job (bulk_job_id),
|
||||||
INDEX idx_created_time (created_time),
|
INDEX idx_created_time (created_time),
|
||||||
INDEX idx_zoho_id (zoho_id)
|
INDEX idx_zoho_id (zoho_id)
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS zoho_bulk_read_jobs (
|
CREATE TABLE IF NOT EXISTS zoho_bulk_read_jobs (
|
||||||
id VARCHAR(255) PRIMARY KEY,
|
id VARCHAR(255) PRIMARY KEY,
|
||||||
user_id VARCHAR(255) NOT NULL,
|
user_uuid CHAR(36) NOT NULL,
|
||||||
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
provider VARCHAR(50) NOT NULL DEFAULT 'zoho',
|
||||||
module VARCHAR(100) NOT NULL,
|
module VARCHAR(100) NOT NULL,
|
||||||
operation VARCHAR(50) NOT NULL,
|
operation VARCHAR(50) NOT NULL,
|
||||||
@ -16,7 +16,8 @@ CREATE TABLE IF NOT EXISTS zoho_bulk_read_jobs (
|
|||||||
error_message TEXT,
|
error_message TEXT,
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
INDEX idx_user_provider (user_id, provider),
|
INDEX idx_user_provider (user_uuid, provider),
|
||||||
|
CONSTRAINT fk_zoho_bulk_read_jobs_user FOREIGN KEY (user_uuid) REFERENCES users(uuid) ON DELETE CASCADE,
|
||||||
INDEX idx_module (module),
|
INDEX idx_module (module),
|
||||||
INDEX idx_status (status)
|
INDEX idx_status (status)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -86,7 +86,7 @@ class ZohoClient {
|
|||||||
const expiresAt = expires_in ? new Date(Date.now() + expires_in * 1000) : null;
|
const expiresAt = expires_in ? new Date(Date.now() + expires_in * 1000) : null;
|
||||||
|
|
||||||
await userAuthTokenRepo.upsertToken({
|
await userAuthTokenRepo.upsertToken({
|
||||||
userId: this.userId,
|
userUuid: this.userId,
|
||||||
serviceName: 'zoho',
|
serviceName: 'zoho',
|
||||||
accessToken: encrypt(access_token),
|
accessToken: encrypt(access_token),
|
||||||
refreshToken: refreshToken ? encrypt(refreshToken) : null,
|
refreshToken: refreshToken ? encrypt(refreshToken) : null,
|
||||||
|
|||||||
@ -495,7 +495,7 @@ class ZohoHandler {
|
|||||||
// Create job record with the webhook data
|
// Create job record with the webhook data
|
||||||
const jobData = {
|
const jobData = {
|
||||||
id: job_id,
|
id: job_id,
|
||||||
user_id: userId,
|
user_uuid: userId,
|
||||||
module: query.module,
|
module: query.module,
|
||||||
operation: operation,
|
operation: operation,
|
||||||
state: state,
|
state: state,
|
||||||
@ -508,9 +508,9 @@ class ZohoHandler {
|
|||||||
console.log('✅ Created new job record');
|
console.log('✅ Created new job record');
|
||||||
} else {
|
} else {
|
||||||
// Update existing job record with user ID if it was unknown
|
// Update existing job record with user ID if it was unknown
|
||||||
if (jobRecord.user_id === 'unknown') {
|
if (jobRecord.user_uuid === 'unknown') {
|
||||||
await ZohoBulkReadRepository.updateBulkReadJob(job_id, {
|
await ZohoBulkReadRepository.updateBulkReadJob(job_id, {
|
||||||
user_id: userId
|
user_uuid: userId
|
||||||
});
|
});
|
||||||
console.log('✅ Updated job record with user ID');
|
console.log('✅ Updated job record with user ID');
|
||||||
}
|
}
|
||||||
@ -642,7 +642,7 @@ class ZohoHandler {
|
|||||||
|
|
||||||
const jobData = {
|
const jobData = {
|
||||||
id: data.job_id,
|
id: data.job_id,
|
||||||
user_id: user.uuid,
|
user_uuid: user.uuid,
|
||||||
module: data.query?.module || 'unknown',
|
module: data.query?.module || 'unknown',
|
||||||
operation: data.operation || 'read',
|
operation: data.operation || 'read',
|
||||||
state: data.state || 'CREATED',
|
state: data.state || 'CREATED',
|
||||||
|
|||||||
@ -63,7 +63,7 @@ class BulkReadService {
|
|||||||
// Store job in database
|
// Store job in database
|
||||||
const jobRecord = await ZohoBulkReadRepository.createBulkReadJob({
|
const jobRecord = await ZohoBulkReadRepository.createBulkReadJob({
|
||||||
id: jobData.id,
|
id: jobData.id,
|
||||||
user_id: userId,
|
user_uuid: userId,
|
||||||
module: module,
|
module: module,
|
||||||
operation: 'read',
|
operation: 'read',
|
||||||
state: 'CREATED',
|
state: 'CREATED',
|
||||||
@ -111,7 +111,7 @@ class BulkReadService {
|
|||||||
throw new Error('Job not found');
|
throw new Error('Job not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (job.user_id !== userId) {
|
if (job.user_uuid !== userId) {
|
||||||
throw new Error('Unauthorized access to job');
|
throw new Error('Unauthorized access to job');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -140,7 +140,7 @@ class CsvService {
|
|||||||
|
|
||||||
const mappedData = csvData.map(record => {
|
const mappedData = csvData.map(record => {
|
||||||
const baseRecord = {
|
const baseRecord = {
|
||||||
user_id: userId,
|
user_uuid: userId,
|
||||||
provider: 'zoho',
|
provider: 'zoho',
|
||||||
bulk_job_id: jobId
|
bulk_job_id: jobId
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user