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" ;
32import Database from "./Database" ;
43import 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