Skip to content

Commit

Permalink
Merge pull request #1240 from Chia-Network/bug-fix-patches-12-6-24
Browse files Browse the repository at this point in the history
fix: assorted bug fixes
  • Loading branch information
wwills2 authored Dec 6, 2024
2 parents 78aa9bb + 4802d3a commit b06d9c7
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 18 deletions.
11 changes: 5 additions & 6 deletions src/controllers/organization.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -264,21 +264,20 @@ export const subscribeToOrganization = async (req, res) => {
export const deleteImportedOrg = async (req, res) => {
let transaction;
try {
const orgUid = req.body.orgUid;
await assertIfReadOnlyMode();
await assertWalletIsSynced();
await assertHomeOrgExists();
await assertCanDeleteOrg(req.body.orgUid);
await assertCanDeleteOrg(orgUid);

transaction = await sequelize.transaction();

await Organization.destroy({ where: { orgUid: req.body.orgUid } });
await Organization.destroy({ where: { orgUid } });

await Promise.all([
...Object.keys(ModelKeys).map(
async (key) =>
await ModelKeys[key].destroy({ where: { orgUid: req.body.orgUid } }),
async (key) => await ModelKeys[key].destroy({ where: { orgUid } }),
),
Audit.destroy({ where: { orgUid: req.body.orgUid } }),
Audit.destroy({ where: { orgUid } }),
]);

await transaction.commit();
Expand Down
5 changes: 4 additions & 1 deletion src/datalayer/persistance.js
Original file line number Diff line number Diff line change
Expand Up @@ -542,7 +542,10 @@ const subscribeToStoreOnDataLayer = async (
return { success: true };
}

const { storeIds: subscriptions } = await getSubscriptions();
const { storeIds: subscriptions, success } = await getSubscriptions();
if (!success) {
return false;
}

if (subscriptions.includes(storeId)) {
logger.info(`Already subscribed to: ${storeId}`);
Expand Down
6 changes: 5 additions & 1 deletion src/datalayer/syncService.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,11 @@ const subscribeToStoreOnDataLayer = async (storeId) => {
};

const getSubscribedStoreData = async (storeId) => {
const { storeIds: subscriptions } = await dataLayer.getSubscriptions(storeId);
const { storeIds: subscriptions, success } =
await dataLayer.getSubscriptions();
if (!success) {
throw new Error('failed to retrieve subscriptions from datalayer');
}
const alreadySubscribed = subscriptions.includes(storeId);

if (!alreadySubscribed) {
Expand Down
18 changes: 10 additions & 8 deletions src/models/organizations/organizations.model.js
Original file line number Diff line number Diff line change
Expand Up @@ -295,14 +295,16 @@ class Organization extends Model {

await datalayer.subscribeToStoreOnDataLayer(registryData.v1);

logger.info({
orgUid,
name: orgData.name,
icon: orgData.icon,
registryId: registryData[dataModelVersion],
subscribed: true,
isHome: false,
});
logger.info(
`setting the following organization information: ${{
orgUid,
name: orgData.name,
icon: orgData.icon,
registryId: registryData[dataModelVersion],
subscribed: true,
isHome: false,
}}`,
);

await Organization.upsert({
orgUid,
Expand Down
5 changes: 4 additions & 1 deletion src/tasks/sync-registries.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,10 @@ const processJob = async () => {
});

// verify that the latest organization root hash is up to date with the audit records. attempt correction.
if (mostRecentOrgAuditRecord?.rootHash !== organization?.registryHash) {
if (
mostRecentOrgAuditRecord &&
mostRecentOrgAuditRecord?.rootHash !== organization?.registryHash
) {
logger.warn(
`latest root hash in org table for organization ${organization.name} (orgUid ${organization.orgUid}) does not match the audit records. attempting to correct`,
);
Expand Down
2 changes: 1 addition & 1 deletion src/utils/data-assertions.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ export const assertRecordExistance = async (Model, pk) => {

export const assertCanDeleteOrg = async (orgUid) => {
const homeOrg = await Organization.getHomeOrg();
if (homeOrg.orgUid === orgUid) {
if (homeOrg?.orgUid === orgUid) {
throw new Error(`Cant delete your own organization`);
}
};
Expand Down

0 comments on commit b06d9c7

Please sign in to comment.