22
33namespace BigCommerce \ApiV3 \Api \Channels ;
44
5+ use BigCommerce \ApiV3 \Api \Generic \BatchCreateResource ;
56use BigCommerce \ApiV3 \Api \Generic \BatchUpdateResource ;
67use BigCommerce \ApiV3 \Api \Generic \CreateResource ;
78use BigCommerce \ApiV3 \Api \Generic \DeleteResource ;
89use BigCommerce \ApiV3 \Api \Generic \GetAllResources ;
910use BigCommerce \ApiV3 \Api \Generic \UpdateResource ;
1011use BigCommerce \ApiV3 \Api \Generic \V3ApiBase ;
12+ use BigCommerce \ApiV3 \ResourceModels \Channel \ChannelCurrencyAssignment ;
1113use BigCommerce \ApiV3 \ResponseModels \Channel \ChannelCurrencyAssignmentsResponse ;
1214use BigCommerce \ApiV3 \ResponseModels \PaginatedResponse ;
13- use BigCommerce \ApiV3 \ResponseModels \SingleResourceResponse ;
1415
1516/**
1617 * Channel Currency Assignments API
1718 *
19+ * Example for finding all the currency assignments. Note that the parent id is effectively just a filter.
1820 *
21+ * ```php
22+ * $api = new BigCommerce\ApiV3\Client($_ENV['hash'], $_ENV['CLIENT_ID'], $_ENV['ACCESS_TOKEN']);
23+ *
24+ * $allCurrencyAssignments = $api->channels()->currencyAssignments()->getAll()->getCurrencyAssignments();
25+ * $channelCurrencyAssignments = $api->channel(1)->currencyAssignments()->getAll()->getCurrencyAssignments();
26+ * ```
1927 */
2028class ChannelCurrencyAssignmentsApi extends V3ApiBase
2129{
@@ -24,24 +32,38 @@ class ChannelCurrencyAssignmentsApi extends V3ApiBase
2432 use UpdateResource;
2533 use CreateResource;
2634 use BatchUpdateResource;
27-
28- // batchcreate?
35+ use BatchCreateResource;
2936
3037 private const CURRENCY_ASSIGNMENTS_ENDPOINT = 'channels/currency-assignments ' ;
3138 private const CURRENCY_ASSIGNMENT_ENDPOINT = 'channels/%d/currency-assignments ' ;
3239
3340
34- public function create (): ChannelCurrencyAssignmentsResponse
41+ public function create (ChannelCurrencyAssignment $ currencyAssignment ): ChannelCurrencyAssignmentsResponse
42+ {
43+ return new ChannelCurrencyAssignmentsResponse ($ this ->createResource ($ currencyAssignment ));
44+ }
45+
46+ public function update (ChannelCurrencyAssignment $ currencyAssignment ): ChannelCurrencyAssignmentsResponse
3547 {
48+ return new ChannelCurrencyAssignmentsResponse ($ this ->updateResource ($ currencyAssignment ));
3649 }
3750
38- public function update (): ChannelCurrencyAssignmentsResponse
51+ /**
52+ * @param ChannelCurrencyAssignment[] $resources
53+ * @return ChannelCurrencyAssignmentsResponse
54+ */
55+ public function batchCreate (array $ resources ): PaginatedResponse
3956 {
57+ return ChannelCurrencyAssignmentsResponse::buildFromMultipleResponses ($ this ->batchCreateResource ($ resources ));
4058 }
4159
60+ /**
61+ * @param ChannelCurrencyAssignment[] $resources
62+ * @return ChannelCurrencyAssignmentsResponse
63+ */
4264 public function batchUpdate (array $ resources ): ChannelCurrencyAssignmentsResponse
4365 {
44- // TODO: Implement batchUpdate() method.
66+ return ChannelCurrencyAssignmentsResponse:: buildFromMultipleResponses ( $ this -> batchUpdateResource ( $ resources ));
4567 }
4668
4769 public function getAll (array $ filters = [], int $ page = 1 , int $ limit = 250 ): ChannelCurrencyAssignmentsResponse
@@ -64,7 +86,6 @@ public function multipleResourceUrl(): string
6486 {
6587 return $ this ->getParentResourceId () ? $ this ->singleResourceUrl () : $ this ->multipleResourcesEndpoint ();
6688 }
67-
6889 public function singleResourceUrl (): string
6990 {
7091 return sprintf (self ::CURRENCY_ASSIGNMENT_ENDPOINT , $ this ->getParentResourceId ());
0 commit comments