Skip to content

Commit def6692

Browse files
authored
Merge pull request #433 from AppQuality/develop
Release 2025 07 22
2 parents d73e63f + bc42581 commit def6692

9 files changed

Lines changed: 1167 additions & 325 deletions

File tree

src/features/db/class/Campaigns.ts

Lines changed: 20 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { tryber } from "@src/features/database";
2-
import { UserTargetChecker } from "@src/routes/users/me/campaigns/_get/UserTargetChecker";
1+
import { UserTargetChecker } from "@src/features/target/UserTargetChecker";
32
import Database from "./Database";
43
import PageAccess from "./PageAccess";
54

@@ -44,6 +43,10 @@ class CampaignObject {
4443
this.os = item.os;
4544
}
4645

46+
get visibility_type() {
47+
return this.is_public;
48+
}
49+
4750
get isPublic() {
4851
return this.is_public === 1;
4952
}
@@ -60,29 +63,15 @@ class CampaignObject {
6063
}
6164

6265
private async getTargetRules() {
63-
const allowedLanguages =
64-
await tryber.tables.CampaignDossierDataLanguages.do()
65-
.select("campaign_id", "language_name")
66-
.join(
67-
"campaign_dossier_data",
68-
"campaign_dossier_data.id",
69-
"campaign_dossier_data_languages.campaign_dossier_data_id"
70-
)
71-
.where("campaign_dossier_data.campaign_id", this.id);
66+
const userTargetChecker = new UserTargetChecker();
67+
const campaigns = await userTargetChecker.enhanceCampaignsWithTargetRules({
68+
campaigns: [this],
69+
});
7270

73-
const allowedCountries =
74-
await tryber.tables.CampaignDossierDataCountries.do()
75-
.select("campaign_id", "country_code")
76-
.join(
77-
"campaign_dossier_data",
78-
"campaign_dossier_data.id",
79-
"campaign_dossier_data_countries.campaign_dossier_data_id"
80-
)
81-
.where("campaign_dossier_data.campaign_id", this.id);
82-
return {
83-
languages: allowedLanguages.map((l) => l.language_name),
84-
countries: allowedCountries.map((c) => c.country_code),
85-
};
71+
const campaign = campaigns[0];
72+
if (!campaign || !campaign.targetRules) return undefined;
73+
const targetRules = campaign.targetRules;
74+
return targetRules;
8675
}
8776

8877
public async testerHasAccess(testerId: number) {
@@ -98,12 +87,14 @@ class CampaignObject {
9887
return previewAccess.length > 0;
9988
}
10089
if (this.isTarget) {
101-
const userTargetChecker = new UserTargetChecker({
102-
testerId,
103-
});
104-
await userTargetChecker.init();
90+
const userTargetChecker = new UserTargetChecker();
91+
await userTargetChecker.initUser({ testerId });
92+
93+
const targetRules = await this.getTargetRules();
94+
await this.getTargetRules();
10595

106-
return userTargetChecker.inTarget(await this.getTargetRules());
96+
if (!targetRules) return true;
97+
return userTargetChecker.inTarget(targetRules);
10798
}
10899
return false;
109100
}

0 commit comments

Comments
 (0)