Skip to content

Commit

Permalink
Merge pull request #10 from onready/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
Juan Cernadas authored Jun 25, 2020
2 parents 3506d9c + 8f1d9ca commit 44c913a
Show file tree
Hide file tree
Showing 177 changed files with 4,122 additions and 920 deletions.
3 changes: 2 additions & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
},
"extends": [
"airbnb-base",
"plugin:jest/recommended"
"plugin:jest/recommended",
"plugin:prettier/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,9 @@ OMS | :white_check_mark: |
Logistics | :white_check_mark: |
Pricing | :white_check_mark: |
Master Data (V2) | :white_check_mark: (*) <em>Attachments API pending</em> |
Catalog | :white_check_mark: |
Search | Comming soon... |
Antifraud Provider | :x: |
Catalog | Comming soon... |
Checkout | :x: |
CMS | :x: |
Customer Credit | :x: |
Expand All @@ -102,7 +103,6 @@ License Manager | :x: |
Payment Provider Protocol | :x: |
Payments Gateway | :x: |
Rates and Benefits | :x: |
Search | :x: |
Session Manager | :x: |
Subscriptions (V2) | :x: |
Suggestions | :x: |
Expand Down
4 changes: 2 additions & 2 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
module.exports = {
presets: [
[
'@babel/preset-env',
"@babel/preset-env",
{
targets: {
node: 8,
},
},
],
'@babel/preset-typescript',
"@babel/preset-typescript",
],
};
4 changes: 2 additions & 2 deletions jest.config.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
module.exports = {
preset: 'ts-jest',
testEnvironment: 'node',
preset: "ts-jest",
testEnvironment: "node",
verbose: true,
};
36 changes: 25 additions & 11 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onreadydesa/vtex-node-sdk",
"version": "1.3.0-alpha",
"version": "1.4.0-alpha",
"description": "VTEX Node SDK, built 100% with Typescript and 0 dependencies!",
"author": "Onready",
"private": false,
Expand All @@ -19,28 +19,42 @@
"keywords": [
"vtex",
"vtex-sdk",
"vtex-node-sdk"
"vtex-node-sdk",
"onready",
"vtex-api",
"sdk-node-vtex",
"typescript",
"api-vtex",
"sdk-vtex",
"node",
"vtex-node",
"node-vtex",
"node-vtex-sdk"
],
"scripts": {
"build": "rimraf dist && tsc",
"test": "jest",
"lint": "eslint ."
"lint": "eslint \"./src/**/*.ts\"",
"prepublishOnly": "yarn lint && yarn test && yarn build"
},
"devDependencies": {
"@babel/core": "7.10.3",
"@babel/preset-env": "7.10.3",
"@babel/preset-typescript": "7.10.1",
"@types/jest": "26.0.0",
"@types/node": "14.0.13",
"@typescript-eslint/eslint-plugin": "3.3.0",
"@typescript-eslint/parser": "3.3.0",
"babel-jest": "26.0.1",
"eslint": "7.3.0",
"@types/jest": "26.0.3",
"@types/node": "14.0.14",
"@typescript-eslint/eslint-plugin": "3.4.0",
"@typescript-eslint/parser": "3.4.0",
"babel-jest": "26.1.0",
"eslint": "7.3.1",
"eslint-config-airbnb-base": "14.2.0",
"eslint-config-prettier": "6.11.0",
"eslint-plugin-import": "2.21.2",
"eslint-plugin-jest": "23.16.0",
"jest": "26.0.1",
"eslint-plugin-jest": "23.17.1",
"eslint-plugin-prettier": "3.1.4",
"jest": "26.1.0",
"nock": "12.0.3",
"prettier": "2.0.5",
"rimraf": "3.0.2",
"ts-jest": "26.1.1",
"typescript": "3.9.5"
Expand Down
43 changes: 31 additions & 12 deletions src/VTEX.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,28 @@
import { VtexCredentials } from './VtexCredentials';
import { VtexHttpClient } from './utils/VtexHttpClient';
import { OMS } from './modules/OMS';
import { Logistics } from './modules/logistics';
import { Pricing } from './modules/pricing';
import { MasterData } from './modules/master-data/v2';
import { VtexCredentials } from "./VtexCredentials";
import { VtexHttpClient } from "./utils/VtexHttpClient";
import { OMS } from "./modules/OMS";
import { Logistics } from "./modules/logistics";
import { Pricing } from "./modules/pricing";
import { MasterData } from "./modules/master-data/v2";
import { Catalog } from "./modules/catalog";

export class VTEX {
private static buildErrorMessage(paramName: string): string {
return `Param ${paramName} is required`;
}

private static validate(store: string, appKey: string, appToken: string): void {
private static validate(
store: string,
appKey: string,
appToken: string
): void {
let errorMessage = null;
if (!store) {
errorMessage = VTEX.buildErrorMessage('store');
errorMessage = VTEX.buildErrorMessage("store");
} else if (!appKey) {
errorMessage = VTEX.buildErrorMessage('appKey');
errorMessage = VTEX.buildErrorMessage("appKey");
} else if (!appToken) {
errorMessage = VTEX.buildErrorMessage('appToken');
errorMessage = VTEX.buildErrorMessage("appToken");
}
if (errorMessage) {
throw new Error(errorMessage);
Expand All @@ -44,16 +49,29 @@ export class VTEX {
*/
readonly masterData: MasterData;

/**
* Catalog Module
*/
readonly catalog: Catalog;

/**
* @param {string} store
* @param {string} appKey
* @param {string} appToken
* @param {string} environment Default: 'stable'
*/
constructor(store: string, appKey: string, appToken: string, environment: string = 'stable') {
constructor(
store: string,
appKey: string,
appToken: string,
environment: string = "stable"
) {
VTEX.validate(store, appKey, appToken);
const vtexCredentials: VtexCredentials = new VtexCredentials(
store, appKey, appToken, environment,
store,
appKey,
appToken,
environment
);
const vtexHttpClient: VtexHttpClient = new VtexHttpClient(vtexCredentials);

Expand All @@ -62,5 +80,6 @@ export class VTEX {
this.logistics = new Logistics(vtexHttpClient);
this.pricing = new Pricing(vtexHttpClient);
this.masterData = new MasterData(vtexHttpClient);
this.catalog = new Catalog(vtexHttpClient);
}
}
7 changes: 6 additions & 1 deletion src/VtexCredentials.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,12 @@ export class VtexCredentials {
* @param {string} appKey
* @param {string} appToken
*/
constructor(store: string, appKey: string, appToken: string, environment: string) {
constructor(
store: string,
appKey: string,
appToken: string,
environment: string
) {
this.store = store;
this.appKey = appKey;
this.appToken = appToken;
Expand Down
2 changes: 1 addition & 1 deletion src/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export * from './VTEX';
export * from "./VTEX";
14 changes: 7 additions & 7 deletions src/modules/AbstractApi.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { VtexHttpClient } from '../utils/VtexHttpClient';
import { VtexHttpClient } from "../utils/VtexHttpClient";

export abstract class AbstractApi {
protected readonly vtexHttpClient: VtexHttpClient;

protected readonly HTTP_METHODS = {
GET: 'GET',
POST: 'POST',
PUT: 'PUT',
DELETE: 'DELETE',
PATCH: 'PATCH',
}
GET: "GET",
POST: "POST",
PUT: "PUT",
DELETE: "DELETE",
PATCH: "PATCH",
};

constructor(vtexHttpClient: VtexHttpClient) {
this.vtexHttpClient = vtexHttpClient;
Expand Down
18 changes: 9 additions & 9 deletions src/modules/OMS/OMS.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { VtexHttpClient } from '../../utils/VtexHttpClient';
import { Orders } from './apis/orders';
import { Invoice } from './apis/invoice';
import { Tracking } from './apis/tracking';
import { Payment } from './apis/payment';
import { Feed } from './apis/feed/v3';
import { OrderHook } from './apis/order-hook';
import { ExportOrderReport } from './apis/export-order-report';
import { UserOrders } from './apis/user-orders';
import { VtexHttpClient } from "../../utils/VtexHttpClient";
import { Orders } from "./apis/orders";
import { Invoice } from "./apis/invoice";
import { Tracking } from "./apis/tracking";
import { Payment } from "./apis/payment";
import { Feed } from "./apis/feed/v3";
import { OrderHook } from "./apis/order-hook";
import { ExportOrderReport } from "./apis/export-order-report";
import { UserOrders } from "./apis/user-orders";

export class OMS {
/**
Expand Down
13 changes: 7 additions & 6 deletions src/modules/OMS/apis/export-order-report/ExportOrderReport.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
import { AbstractApi } from '../../../AbstractApi';
import { VtexHttpResponse } from '../../../../utils/VtexHttpResponse';
import { ExportOrderReportResponseItem } from './responses/ExportOrderReportResponseItem';
import { AbstractApi } from "../../../AbstractApi";
import { VtexHttpResponse } from "../../../../utils/VtexHttpResponse";
import { ExportOrderReportResponseItem } from "./responses/ExportOrderReportResponseItem";

export class ExportOrderReport extends AbstractApi {
private static readonly BASE_PATH: string = '/api/oms/pvt/admin/reports';
private static readonly BASE_PATH: string = "/api/oms/pvt/admin/reports";

/**
* @param {string} status 'inprogress' | 'completed'
*/
exportOrderReport(status: string)
: Promise<VtexHttpResponse<Array<ExportOrderReportResponseItem>>> {
exportOrderReport(
status: string
): Promise<VtexHttpResponse<Array<ExportOrderReportResponseItem>>> {
const path = `${ExportOrderReport.BASE_PATH}/${status}`;
return this.vtexHttpClient.performRequest(path, this.HTTP_METHODS.GET);
}
Expand Down
2 changes: 1 addition & 1 deletion src/modules/OMS/apis/export-order-report/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export * from './ExportOrderReport';
export * from "./ExportOrderReport";
43 changes: 29 additions & 14 deletions src/modules/OMS/apis/feed/v3/Feed.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
import { AbstractApi } from '../../../../AbstractApi';
import { VtexHttpResponse } from '../../../../../utils/VtexHttpResponse';
import { RetrieveFeedOrderStatusResponse } from './responses/RetrieveFeedOrderStatusResponse';
import { CommitItemFeedOrderStatusRequest } from './requests/CommitItemFeedOrderStatusRequest';
import { UpdateFeedConfigurationRequest } from './requests/UpdateFeedConfigurationRequest';
import { RetrieveFeedConfigurationResponse } from './responses/RetrieveFeedConfigurationResponse';
import { AbstractApi } from "../../../../AbstractApi";
import { VtexHttpResponse } from "../../../../../utils/VtexHttpResponse";
import { RetrieveFeedOrderStatusResponse } from "./responses/RetrieveFeedOrderStatusResponse";
import { CommitItemFeedOrderStatusRequest } from "./requests/CommitItemFeedOrderStatusRequest";
import { UpdateFeedConfigurationRequest } from "./requests/UpdateFeedConfigurationRequest";
import { RetrieveFeedConfigurationResponse } from "./responses/RetrieveFeedConfigurationResponse";

export class Feed extends AbstractApi {
private static readonly BASE_PATH: string = '/api/orders/feed';
private static readonly BASE_PATH: string = "/api/orders/feed";

/**
* Lists feed order events.
* @param {number} maxlot
*/
retrieveFeedOrderStatus(maxlot: number)
: Promise<VtexHttpResponse<Array<RetrieveFeedOrderStatusResponse>>> {
retrieveFeedOrderStatus(
maxlot: number
): Promise<VtexHttpResponse<Array<RetrieveFeedOrderStatusResponse>>> {
const path = `${Feed.BASE_PATH}?maxlot=${maxlot}`;
return this.vtexHttpClient.performRequest(path, this.HTTP_METHODS.GET);
}
Expand All @@ -22,23 +23,37 @@ export class Feed extends AbstractApi {
* Acknowledges an item's feed order status.
* @param {CommitItemFeedOrderStatusRequest} events
*/
commitItemFeedOrderStatus(events: CommitItemFeedOrderStatusRequest): Promise<VtexHttpResponse> {
return this.vtexHttpClient.performRequest(Feed.BASE_PATH, this.HTTP_METHODS.POST, events);
commitItemFeedOrderStatus(
events: CommitItemFeedOrderStatusRequest
): Promise<VtexHttpResponse> {
return this.vtexHttpClient.performRequest(
Feed.BASE_PATH,
this.HTTP_METHODS.POST,
events
);
}

/**
* Configures the filter rule applied to Feed V3.
* @param {UpdateFeedConfigurationRequest} feedConfig
*/
updateFeedConfiguration(feedConfig: UpdateFeedConfigurationRequest): Promise<VtexHttpResponse> {
updateFeedConfiguration(
feedConfig: UpdateFeedConfigurationRequest
): Promise<VtexHttpResponse> {
const path = `${Feed.BASE_PATH}/config`;
return this.vtexHttpClient.performRequest(path, this.HTTP_METHODS.POST, feedConfig);
return this.vtexHttpClient.performRequest(
path,
this.HTTP_METHODS.POST,
feedConfig
);
}

/**
* Lists a given Feed's configuration details.
*/
retrieveFeedConfiguration(): Promise<VtexHttpResponse<RetrieveFeedConfigurationResponse>> {
retrieveFeedConfiguration(): Promise<
VtexHttpResponse<RetrieveFeedConfigurationResponse>
> {
const path = `${Feed.BASE_PATH}/config`;
return this.vtexHttpClient.performRequest(path, this.HTTP_METHODS.GET);
}
Expand Down
2 changes: 1 addition & 1 deletion src/modules/OMS/apis/feed/v3/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export * from './Feed';
export * from "./Feed";
Loading

0 comments on commit 44c913a

Please sign in to comment.