| 1350 | } |
| 1351 | |
| 1352 | async createShare(chartId) { |
| 1353 | const shareString = uuid(); |
| 1354 | const transaction = await db.sequelize.transaction(); |
| 1355 | |
| 1356 | const sharePolicy = await db.SharePolicy.create({ |
| 1357 | entity_type: "Chart", |
| 1358 | entity_id: chartId, |
| 1359 | visibility: "private", |
| 1360 | }, { transaction }); |
| 1361 | |
| 1362 | const chartShare = await db.Chartshare.create({ |
| 1363 | chart_id: chartId, |
| 1364 | shareString, |
| 1365 | }, { transaction }); |
| 1366 | |
| 1367 | if (!sharePolicy || !chartShare) { |
| 1368 | await transaction.rollback(); |
| 1369 | return Promise.reject("Failed to create share"); |
| 1370 | } |
| 1371 | |
| 1372 | await transaction.commit(); |
| 1373 | |
| 1374 | return shareString; |
| 1375 | } |
| 1376 | |
| 1377 | updateShare(id, data) { |
| 1378 | return db.Chartshare.update(data, { where: { id } }) |