Skip to content

Commit 05e0717

Browse files
committed
Allow overriding of key variables
1 parent 5303e8f commit 05e0717

File tree

9 files changed

+91
-80
lines changed

9 files changed

+91
-80
lines changed

src/LaravelCrisp.php

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,25 +43,34 @@ final class LaravelCrisp
4343

4444
public Website $website;
4545

46-
public function __construct()
46+
public function __construct(
47+
?string $websiteId = null,
48+
?string $crispTier = null,
49+
#[\SensitiveParameter]
50+
?string $accessKeyId = null,
51+
#[\SensitiveParameter]
52+
?string $secretAccessKey = null,
53+
)
4754
{
4855
$this->officialClient = new CrispClient;
49-
$this->officialClient->setTier(config('crisp.tier'));
56+
$this->officialClient->setTier(
57+
$crispTier ?? config('crisp.tier')
58+
);
5059
$this->officialClient->authenticate(
51-
config('crisp.access_key_id'),
52-
config('crisp.secret_access_key')
60+
$accessKeyId ?? config('crisp.access_key_id'),
61+
$secretAccessKey ?? config('crisp.secret_access_key')
5362
);
5463

5564
// Initialize all resource classes
56-
$this->websitePeople = new WebsitePeople($this->officialClient);
57-
$this->websiteConversations = new WebsiteConversations($this->officialClient);
58-
$this->websiteSettings = new WebsiteSettings($this->officialClient);
59-
$this->websiteOperators = new WebsiteOperators($this->officialClient);
60-
$this->websiteVisitors = new WebsiteVisitors($this->officialClient);
61-
$this->websiteAvailability = new WebsiteAvailability($this->officialClient);
62-
$this->websiteVerify = new WebsiteVerify($this->officialClient);
65+
$this->websitePeople = new WebsitePeople($this->officialClient, $websiteId);
66+
$this->websiteConversations = new WebsiteConversations($this->officialClient, $websiteId);
67+
$this->websiteSettings = new WebsiteSettings($this->officialClient, $websiteId);
68+
$this->websiteOperators = new WebsiteOperators($this->officialClient, $websiteId);
69+
$this->websiteVisitors = new WebsiteVisitors($this->officialClient, $websiteId);
70+
$this->websiteAvailability = new WebsiteAvailability($this->officialClient, $websiteId);
71+
$this->websiteVerify = new WebsiteVerify($this->officialClient, $websiteId);
6372
$this->userProfile = new UserProfile($this->officialClient);
64-
$this->pluginSubscriptions = new PluginSubscriptions($this->officialClient);
73+
$this->pluginSubscriptions = new PluginSubscriptions($this->officialClient, $websiteId);
6574
$this->buckets = new Buckets($this->officialClient);
6675
$this->website = new Website($this->officialClient);
6776
}

src/Resources/PluginSubscriptions.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
*/
1414
final readonly class PluginSubscriptions
1515
{
16-
public function __construct(private CrispClient $client) {}
16+
public function __construct(private CrispClient $client, private ?string $websiteId = null) {}
1717

1818
/**
1919
* @throws CrispException
@@ -31,7 +31,7 @@ public function listAllActiveSubscriptions(): array
3131
public function listSubscriptionsForWebsite(): array
3232
{
3333
return $this->client->pluginSubscriptions->listSubscriptionsForWebsite(
34-
config('crisp.website_id')
34+
$this->websiteId ?? config('crisp.website_id'),
3535
);
3636
}
3737

@@ -42,7 +42,7 @@ public function listSubscriptionsForWebsite(): array
4242
public function getSubscriptionDetails(string $pluginId): array
4343
{
4444
return $this->client->pluginSubscriptions->getSubscriptionDetails(
45-
config('crisp.website_id'),
45+
$this->websiteId ?? config('crisp.website_id'),
4646
$pluginId
4747
);
4848
}
@@ -54,7 +54,7 @@ public function getSubscriptionDetails(string $pluginId): array
5454
public function subscribeWebsiteToPlugin(string $pluginId): array
5555
{
5656
return $this->client->pluginSubscriptions->subscribeWebsiteToPlugin(
57-
config('crisp.website_id'),
57+
$this->websiteId ?? config('crisp.website_id'),
5858
$pluginId
5959
);
6060
}
@@ -66,7 +66,7 @@ public function subscribeWebsiteToPlugin(string $pluginId): array
6666
public function unsubscribePluginFromWebsite(string $pluginId): array
6767
{
6868
return $this->client->pluginSubscriptions->unsubscribePluginFromWebsite(
69-
config('crisp.website_id'),
69+
$this->websiteId ?? config('crisp.website_id'),
7070
$pluginId
7171
);
7272
}
@@ -78,7 +78,7 @@ public function unsubscribePluginFromWebsite(string $pluginId): array
7878
public function getSubscriptionSettings(string $pluginId): array
7979
{
8080
return $this->client->pluginSubscriptions->getSubscriptionSettings(
81-
config('crisp.website_id'),
81+
$this->websiteId ?? config('crisp.website_id'),
8282
$pluginId
8383
);
8484
}
@@ -92,7 +92,7 @@ public function getSubscriptionSettings(string $pluginId): array
9292
public function saveSubscriptionSettings(string $pluginId, array $settings): array
9393
{
9494
return $this->client->pluginSubscriptions->saveSubscriptionSettings(
95-
config('crisp.website_id'),
95+
$this->websiteId ?? config('crisp.website_id'),
9696
$pluginId,
9797
$settings
9898
);

src/Resources/WebsiteAvailability.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
final readonly class WebsiteAvailability
1212
{
13-
public function __construct(private CrispClient $client) {}
13+
public function __construct(private CrispClient $client, private ?string $websiteId) {}
1414

1515
/**
1616
* @throws CrispException
@@ -19,7 +19,7 @@ public function __construct(private CrispClient $client) {}
1919
public function getAvailabilityStatus(): array
2020
{
2121
return $this->client->websiteAvailability->getAvailabilityStatus(
22-
config('crisp.website_id')
22+
$this->websiteId ?? config('crisp.website_id'),
2323
);
2424
}
2525

@@ -30,7 +30,7 @@ public function getAvailabilityStatus(): array
3030
public function listOperatorAvailabilities(): array
3131
{
3232
return $this->client->websiteAvailability->listOperatorAvailabilities(
33-
config('crisp.website_id')
33+
$this->websiteId ?? config('crisp.website_id'),
3434
);
3535
}
3636
}

src/Resources/WebsiteConversations.php

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
final readonly class WebsiteConversations
1414
{
15-
public function __construct(private CrispClient $client) {}
15+
public function __construct(private CrispClient $client, private ?string $websiteId = null) {}
1616

1717
/**
1818
* @throws CrispException
@@ -21,7 +21,7 @@ public function __construct(private CrispClient $client) {}
2121
public function findWithSearch(int $pageNumber = 1, string $searchQuery = '', string $searchType = '', string $searchOperator = '', string $includeEmpty = '', string $filterUnread = '', string $filterResolved = '', string $filterNotResolved = '', string $filterMention = '', string $filterAssigned = '', string $filterUnassigned = '', string $filterDateStart = '', string $filterDateEnd = '', string $orderDateCreated = '', string $orderDateUpdated = ''): array
2222
{
2323
return $this->client->websiteConversations->findWithSearch(
24-
config('crisp.website_id'),
24+
$this->websiteId ?? config('crisp.website_id'),
2525
$pageNumber,
2626
$searchQuery,
2727
$searchType,
@@ -47,7 +47,7 @@ public function findWithSearch(int $pageNumber = 1, string $searchQuery = '', st
4747
public function getList(int $pageNumber = 1): array
4848
{
4949
return $this->client->websiteConversations->getList(
50-
config('crisp.website_id'),
50+
$this->websiteId ?? config('crisp.website_id'),
5151
$pageNumber
5252
);
5353
}
@@ -70,7 +70,7 @@ public function create(): array
7070
public function getOne(string $sessionId): array
7171
{
7272
return $this->client->websiteConversations->getOne(
73-
config('crisp.website_id'),
73+
$this->websiteId ?? config('crisp.website_id'),
7474
$sessionId
7575
);
7676
}
@@ -84,7 +84,7 @@ public function getOne(string $sessionId): array
8484
public function deleteOne(string $sessionId): array
8585
{
8686
return $this->client->websiteConversations->deleteOne(
87-
config('crisp.website_id'),
87+
$this->websiteId ?? config('crisp.website_id'),
8888
$sessionId
8989
);
9090
}
@@ -98,7 +98,7 @@ public function deleteOne(string $sessionId): array
9898
public function initiateOne(string $sessionId): array
9999
{
100100
return $this->client->websiteConversations->initiateOne(
101-
config('crisp.website_id'),
101+
$this->websiteId ?? config('crisp.website_id'),
102102
$sessionId
103103
);
104104
}
@@ -112,7 +112,7 @@ public function initiateOne(string $sessionId): array
112112
public function getMessages(string $sessionId, string $timestampBefore = ''): array
113113
{
114114
return $this->client->websiteConversations->getMessages(
115-
config('crisp.website_id'),
115+
$this->websiteId ?? config('crisp.website_id'),
116116
$sessionId,
117117
$timestampBefore
118118
);
@@ -127,7 +127,7 @@ public function getMessages(string $sessionId, string $timestampBefore = ''): ar
127127
public function sendMessage(string $sessionId, array $message): array
128128
{
129129
return $this->client->websiteConversations->sendMessage(
130-
config('crisp.website_id'),
130+
$this->websiteId ?? config('crisp.website_id'),
131131
$sessionId,
132132
$message
133133
);
@@ -142,7 +142,7 @@ public function sendMessage(string $sessionId, array $message): array
142142
public function acknowledgeMessages(string $sessionId, array $read): array
143143
{
144144
return $this->client->websiteConversations->acknowledgeMessages(
145-
config('crisp.website_id'),
145+
$this->websiteId ?? config('crisp.website_id'),
146146
$sessionId,
147147
$read
148148
);
@@ -157,7 +157,7 @@ public function acknowledgeMessages(string $sessionId, array $read): array
157157
public function getRouting(string $sessionId): array
158158
{
159159
return $this->client->websiteConversations->getRouting(
160-
config('crisp.website_id'),
160+
$this->websiteId ?? config('crisp.website_id'),
161161
$sessionId
162162
);
163163
}
@@ -169,7 +169,7 @@ public function getRouting(string $sessionId): array
169169
public function assignRouting(string $sessionId, array $routing): array
170170
{
171171
return $this->client->websiteConversations->assignRouting(
172-
config('crisp.website_id'),
172+
$this->websiteId ?? config('crisp.website_id'),
173173
$sessionId,
174174
$routing
175175
);
@@ -182,7 +182,7 @@ public function assignRouting(string $sessionId, array $routing): array
182182
public function getMeta(string $sessionId): array
183183
{
184184
return $this->client->websiteConversations->getMeta(
185-
config('crisp.website_id'),
185+
$this->websiteId ?? config('crisp.website_id'),
186186
$sessionId
187187
);
188188
}
@@ -194,7 +194,7 @@ public function getMeta(string $sessionId): array
194194
public function updateMeta(string $sessionId, array $metas): array
195195
{
196196
return $this->client->websiteConversations->updateMeta(
197-
config('crisp.website_id'),
197+
$this->websiteId ?? config('crisp.website_id'),
198198
$sessionId,
199199
$metas
200200
);
@@ -207,7 +207,7 @@ public function updateMeta(string $sessionId, array $metas): array
207207
public function getOriginalMessage(string $sessionId, string $originalId): array
208208
{
209209
return $this->client->websiteConversations->getOriginalMessage(
210-
config('crisp.website_id'),
210+
$this->websiteId ?? config('crisp.website_id'),
211211
$sessionId,
212212
$originalId
213213
);
@@ -224,7 +224,7 @@ public function getOriginalMessage(string $sessionId, string $originalId): array
224224
public function setState(string $sessionId, string $state): array
225225
{
226226
return $this->client->websiteConversations->setState(
227-
config('crisp.website_id'),
227+
$this->websiteId ?? config('crisp.website_id'),
228228
$sessionId,
229229
$state
230230
);
@@ -237,7 +237,7 @@ public function setState(string $sessionId, string $state): array
237237
public function setBlock(string $sessionId, bool $blocked = true): array
238238
{
239239
return $this->client->websiteConversations->setBlock(
240-
config('crisp.website_id'),
240+
$this->websiteId ?? config('crisp.website_id'),
241241
$sessionId,
242242
$blocked
243243
);
@@ -260,7 +260,7 @@ public function scheduleReminder(string $sessionId, string|CarbonInterface $date
260260
}
261261

262262
return $this->client->websiteConversations->scheduleReminder(
263-
config('crisp.website_id'),
263+
$this->websiteId ?? config('crisp.website_id'),
264264
$sessionId,
265265
$params
266266
);
@@ -277,7 +277,7 @@ public function scheduleReminder(string $sessionId, string|CarbonInterface $date
277277
public function getOneCrispConversation(string $sessionId): CrispConversation
278278
{
279279
return CrispConversation::from(
280-
$this->client->websiteConversations->getOne(config('crisp.website_id'), $sessionId)
280+
$this->client->websiteConversations->getOne($this->websiteId ?? config('crisp.website_id'), $sessionId)
281281
);
282282
}
283283

@@ -291,7 +291,7 @@ public function getOneCrispConversation(string $sessionId): CrispConversation
291291
public function getOneLastMessage(string $sessionId): string
292292
{
293293
$getOneResponse = $this->client->websiteConversations->getOne(
294-
config('crisp.website_id'),
294+
$this->websiteId ?? config('crisp.website_id'),
295295
$sessionId
296296
);
297297

@@ -302,9 +302,9 @@ public function getOneLastMessage(string $sessionId): string
302302
* Bonus Method
303303
* Get the conversation link for a given session.
304304
*/
305-
public static function getConversationLink(string $sessionId): string
305+
public static function getConversationLink(string $sessionId, ?string $websiteId = null): string
306306
{
307-
$websiteId = config('crisp.website_id');
307+
$websiteId = $websiteId ?? config('crisp.website_id');
308308

309309
return "https://app.crisp.chat/website/{$websiteId}/inbox/{$sessionId}/";
310310
}

src/Resources/WebsiteOperators.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
final readonly class WebsiteOperators
1212
{
13-
public function __construct(private CrispClient $client) {}
13+
public function __construct(private CrispClient $client, private ?string $websiteId = null) {}
1414

1515
/**
1616
* @throws CrispException
@@ -19,7 +19,7 @@ public function __construct(private CrispClient $client) {}
1919
public function getList(): array
2020
{
2121
return $this->client->websiteOperators->getList(
22-
config('crisp.website_id')
22+
$this->websiteId ?? config('crisp.website_id'),
2323
);
2424
}
2525

@@ -30,7 +30,7 @@ public function getList(): array
3030
public function getOne(string $operatorId): array
3131
{
3232
return $this->client->websiteOperators->getOne(
33-
config('crisp.website_id'),
33+
$this->websiteId ?? config('crisp.website_id'),
3434
$operatorId
3535
);
3636
}
@@ -42,7 +42,7 @@ public function getOne(string $operatorId): array
4242
public function deleteOne(string $operatorId): array
4343
{
4444
return $this->client->websiteOperators->deleteOne(
45-
config('crisp.website_id'),
45+
$this->websiteId ?? config('crisp.website_id'),
4646
$operatorId
4747
);
4848
}
@@ -54,7 +54,7 @@ public function deleteOne(string $operatorId): array
5454
public function updateOne(string $operatorId, array $params): array
5555
{
5656
return $this->client->websiteOperators->updateOne(
57-
config('crisp.website_id'),
57+
$this->websiteId ?? config('crisp.website_id'),
5858
$operatorId,
5959
$params
6060
);

0 commit comments

Comments
 (0)