Skip to content

Commit 1f94605

Browse files
authored
Merge pull request #43 from FoxComm/feature/product-review-api
add endpoints for product review api
2 parents 47591fe + a58d4ea commit 1f94605

4 files changed

Lines changed: 93 additions & 0 deletions

File tree

index.html

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,11 @@ <h3 id='foxapi-property'>Properties</h3>
228228
<td><code><a href='#orders'>Orders</a></code></td>
229229
<td>Orders instance</td>
230230
</tr>
231+
<tr id='foxapi-reviews'>
232+
<td><code><b>reviews</b>
233+
<td><code><a href='#reviews'>Reviews</a></code></td>
234+
<td>Reviews instance</td>
235+
</tr>
231236
<tr id='foxapi-analytics'>
232237
<td><code><b>analytics</b>
233238
<td><code><a href='#analytics'>Analytics</a></code></td>
@@ -3371,6 +3376,49 @@ <h3 id='orders-method'>Methods</h3>
33713376

33723377
</section>
33733378

3379+
</section>
3380+
<h2 id='reviews'>Reviews</h2><p>Accessible via <a href="#foxapi-reviews">reviews</a> property of <a href="#foxapi">FoxApi</a> instance.</p>
3381+
3382+
<section>
3383+
<h3 id='reviews-method'>Methods</h3>
3384+
3385+
<section >
3386+
3387+
3388+
3389+
<div class='section-comments'></div>
3390+
3391+
<table><thead>
3392+
<tr>
3393+
<th>Method</th>
3394+
<th>Returns</th>
3395+
<th>Description</th>
3396+
</tr>
3397+
</thead><tbody>
3398+
<tr id='reviews-add'>
3399+
<td><code><b>add</b>(<nobr>&lt;ReviewPayload&gt;</nobr> <i>review</i>)</nobr></code></td>
3400+
<td><code>Promise&lt;Review&gt;</code></td>
3401+
<td>Adds a new product review.</td>
3402+
</tr>
3403+
<tr id='reviews-update'>
3404+
<td><code><b>update</b>(<nobr>&lt;Number&gt;</nobr> <i>reviewId</i>, <nobr>&lt;ReviewPayload&gt;</nobr> <i>review</i>)</nobr></code></td>
3405+
<td><code>Promise&lt;Review&gt;</code></td>
3406+
<td>Updates the selected product review.</td>
3407+
</tr>
3408+
<tr id='reviews-delete'>
3409+
<td><code><b>delete</b>(<nobr>&lt;Number&gt;</nobr> <i>reviewId</i>)</nobr></code></td>
3410+
<td><code>Promise</code></td>
3411+
<td>Deletes the selected product review.</td>
3412+
</tr>
3413+
<tr id='reviews-search'>
3414+
<td><code><b>search</b>(<nobr>&lt;Object&gt;</nobr> <i>query</i>, <nobr>&lt;Number&gt;</nobr> <i>size</i>, <nobr>&lt;Number&gt;</nobr> <i>from</i>)</nobr></code></td>
3415+
<td><code>Promise</code></td>
3416+
<td>Uses <code>query</code> to search product reviews.</td>
3417+
</tr>
3418+
</tbody></table>
3419+
3420+
</section>
3421+
33743422
</section>
33753423
<h2 id='storecredits'>StoreCredits</h2><p>Accessible via <a href="#foxapi-storecredits">storeCredits</a> property of <a href="#foxapi">FoxApi</a> instance.</p>
33763424

src/api/reviews.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
2+
// @class Reviews
3+
// Accessible via [reviews](#foxapi-reviews) property of [FoxApi](#foxapi) instance.
4+
5+
import * as endpoints from '../endpoints';
6+
7+
export default class Reviews {
8+
constructor(api) {
9+
this.api = api;
10+
}
11+
12+
// @method add(review: ReviewPayload): Promise<Review>
13+
// Adds a new product review.
14+
add(review) {
15+
return this.api.post(endpoints.review, review);
16+
}
17+
18+
// @method update(reviewId: Number, review: ReviewPayload): Promise<Review>
19+
// Updates the selected product review.
20+
update(reviewId, review) {
21+
return this.api.patch(endpoints.review(reviewId), review);
22+
}
23+
24+
// @method delete(reviewId: Number): Promise
25+
// Deletes the selected product review.
26+
delete(reviewId) {
27+
return this.api.delete(endpoints.review(reviewId));
28+
}
29+
30+
// @method search(query: Object, size: Number, from: Number): Promise
31+
// Uses `query` to search product reviews.
32+
search(query, size, from = 0) {
33+
return this.api.post(endpoints.reviewSearch(size, from), query);
34+
}
35+
}

src/endpoints.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ export const changePassword = '/v1/my/account/change-password';
5555
export const orders = '/v1/my/orders';
5656
export const order = referenceNumber => `/v1/my/orders/${referenceNumber}`;
5757

58+
// review endpoints
59+
export const reviews = '/v1/my/review';
60+
export const review = reviewId => `/v1/my/review/${reviewId}`;
61+
export const reviewSearch = (size, from) => `/search/public/product_reviews_search_view/_search?size=${size}&from=${from}`;
62+
5863
// analytics endpoints
5964
export const hal = '/v1/hal';
6065

src/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import StoreCredits from './api/store-credits';
1919
import Cart from './api/cart';
2020
import Account from './api/account';
2121
import Orders from './api/orders';
22+
import Reviews from './api/reviews';
2223
import jwtDecode from 'jwt-decode';
2324
import Analytics from './api/analytics';
2425
import CrossSell from './api/cross-sell';
@@ -65,6 +66,10 @@ export default class Api {
6566
// Orders instance
6667
this.orders = new Orders(this);
6768

69+
// @property reviews: Reviews
70+
// Reviews instance
71+
this.reviews = new Reviews(this);
72+
6873
// @property analytics: Analytics
6974
// Analytics instance
7075
this.analytics = new Analytics(this);

0 commit comments

Comments
 (0)