Compare commits
5 commits
689dc24850
...
5d79510780
Author | SHA1 | Date | |
---|---|---|---|
5d79510780 | |||
e7ddef05d3 | |||
e55b84feba | |||
6ecb366919 | |||
be4fbc20e0 |
15 changed files with 45 additions and 60 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,2 +1,2 @@
|
||||||
build/
|
dist/
|
||||||
node_modules/
|
node_modules/
|
||||||
|
|
0
.npmignore
Normal file
0
.npmignore
Normal file
|
@ -1,2 +1,2 @@
|
||||||
pnpm-lock.yaml
|
pnpm-lock.yaml
|
||||||
build/
|
dist/
|
||||||
|
|
|
@ -1,6 +1,3 @@
|
||||||
// const HOST = 'https://tiendas.axoft.com'
|
|
||||||
export const HOST = "http://sutty.vm:4001";
|
|
||||||
|
|
||||||
export interface Paging {
|
export interface Paging {
|
||||||
/**
|
/**
|
||||||
* Si hay más páginas disponibles
|
* Si hay más páginas disponibles
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
import {
|
import {
|
||||||
QueryCustomer,
|
QueryCustomer,
|
||||||
HOST,
|
|
||||||
Paginacion,
|
Paginacion,
|
||||||
paginacionToSearchParams,
|
paginacionToSearchParams,
|
||||||
Paging,
|
Paging,
|
||||||
|
@ -78,6 +77,7 @@ export interface CustomerResponse {
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getCustomers(
|
export async function getCustomers(
|
||||||
|
host: string,
|
||||||
token: string,
|
token: string,
|
||||||
options: CustomerQuery
|
options: CustomerQuery
|
||||||
): Promise<CustomerResponse> {
|
): Promise<CustomerResponse> {
|
||||||
|
@ -87,7 +87,7 @@ export async function getCustomers(
|
||||||
queryCustomerToSearchParams(options.customer, searchParams);
|
queryCustomerToSearchParams(options.customer, searchParams);
|
||||||
}
|
}
|
||||||
const res = await fetch(
|
const res = await fetch(
|
||||||
`${HOST}/api/Aperture/Customer?${searchParams.toString()}`,
|
`${host}/api/Aperture/Customer?${searchParams.toString()}`,
|
||||||
{
|
{
|
||||||
headers: {
|
headers: {
|
||||||
accesstoken: token,
|
accesstoken: token,
|
||||||
|
|
28
demo/demo.ts
28
demo/demo.ts
|
@ -11,9 +11,11 @@ import {
|
||||||
Producto,
|
Producto,
|
||||||
Precio,
|
Precio,
|
||||||
getPublications,
|
getPublications,
|
||||||
Publication,
|
|
||||||
} from "../index.js";
|
} from "../index.js";
|
||||||
|
|
||||||
|
// TODO: hacerlo input
|
||||||
|
const HOST = "http://sutty.vm:4001";
|
||||||
|
|
||||||
const tokenInput = document.querySelector<HTMLInputElement>("#token-input")!;
|
const tokenInput = document.querySelector<HTMLInputElement>("#token-input")!;
|
||||||
|
|
||||||
if (localStorage.token) {
|
if (localStorage.token) {
|
||||||
|
@ -80,17 +82,19 @@ function setupForm(selector: string, listener: (event: Event) => Promise<any>) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
setupForm("#token", () => dummy(token()));
|
setupForm("#token", () => dummy(HOST, token()));
|
||||||
setupForm("#save-token", async () => {
|
setupForm("#save-token", async () => {
|
||||||
localStorage.token = token();
|
localStorage.token = token();
|
||||||
});
|
});
|
||||||
setupForm("#productos", () => getProductos(token(), {}));
|
setupForm("#productos", () => getProductos(HOST, token(), {}));
|
||||||
setupForm("#publicaciones", () => getPublications(token(), {}));
|
setupForm("#publicaciones", () => getPublications(HOST, token(), {}));
|
||||||
setupForm("#price", () => getPrices(token(), {}));
|
setupForm("#price", () => getPrices(HOST, token(), {}));
|
||||||
setupForm("#price-by-customer", (event) =>
|
setupForm("#price-by-customer", (event) =>
|
||||||
getPricesByCustomer(token(), { filter: (event.target! as any).filter.value })
|
getPricesByCustomer(HOST, token(), {
|
||||||
|
filter: (event.target! as any).filter.value,
|
||||||
|
})
|
||||||
);
|
);
|
||||||
setupForm("#customers", () => getCustomers(token(), {}));
|
setupForm("#customers", () => getCustomers(HOST, token(), {}));
|
||||||
|
|
||||||
let customer: Customer | null = null;
|
let customer: Customer | null = null;
|
||||||
|
|
||||||
|
@ -98,7 +102,7 @@ setupForm("#pedido-customer", async (event) => {
|
||||||
const cuit = (event.target! as any).cuit.value;
|
const cuit = (event.target! as any).cuit.value;
|
||||||
if (cuit.length === 0) throw new Error("No pusiste un CUIT.");
|
if (cuit.length === 0) throw new Error("No pusiste un CUIT.");
|
||||||
|
|
||||||
const customers = await getCustomers(token(), {
|
const customers = await getCustomers(HOST, token(), {
|
||||||
customer: {
|
customer: {
|
||||||
type: TipoDeDocumento.CUIT,
|
type: TipoDeDocumento.CUIT,
|
||||||
number: cuit,
|
number: cuit,
|
||||||
|
@ -135,11 +139,11 @@ setupForm("#pedido-item", async (event) => {
|
||||||
const sku = (event.target! as any).sku.value;
|
const sku = (event.target! as any).sku.value;
|
||||||
if (sku.length === 0) throw new Error("No pusiste un SKU.");
|
if (sku.length === 0) throw new Error("No pusiste un SKU.");
|
||||||
|
|
||||||
const productosResponse = await getProductos(token(), { filter: sku });
|
const productosResponse = await getProductos(HOST, token(), { filter: sku });
|
||||||
if (productosResponse.Data.length !== 1)
|
if (productosResponse.Data.length !== 1)
|
||||||
throw new Error("Encontré más de un producto.");
|
throw new Error("Encontré más de un producto.");
|
||||||
|
|
||||||
const preciosDelClienteResponse = await getPricesByCustomer(token(), {
|
const preciosDelClienteResponse = await getPricesByCustomer(HOST, token(), {
|
||||||
SKUCode: sku,
|
SKUCode: sku,
|
||||||
customer: {
|
customer: {
|
||||||
type: customer.DocumentType,
|
type: customer.DocumentType,
|
||||||
|
@ -158,7 +162,7 @@ setupForm("#pedido-item", async (event) => {
|
||||||
return productosResponse;
|
return productosResponse;
|
||||||
});
|
});
|
||||||
|
|
||||||
setupForm("#pedido", async (event) => {
|
setupForm("#pedido", async () => {
|
||||||
if (!customer) throw new Error("No seteaste lx cliente todavía.");
|
if (!customer) throw new Error("No seteaste lx cliente todavía.");
|
||||||
|
|
||||||
// Se supone que Total es:
|
// Se supone que Total es:
|
||||||
|
@ -191,5 +195,5 @@ setupForm("#pedido", async (event) => {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
return await order(token(), orderJson);
|
return await order(HOST, token(), orderJson);
|
||||||
});
|
});
|
||||||
|
|
|
@ -82,4 +82,4 @@
|
||||||
</form>
|
</form>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<script type="module" src="../build/demo/demo.js"></script>
|
<script type="module" src="../dist/demo/demo.js"></script>
|
||||||
|
|
6
dummy.ts
6
dummy.ts
|
@ -1,7 +1,5 @@
|
||||||
import { HOST } from "./common.js";
|
export async function dummy(host: string, token: string) {
|
||||||
|
const res = await fetch(`${host}/api/Aperture/dummy`, {
|
||||||
export async function dummy(token: string) {
|
|
||||||
const res = await fetch(`${HOST}/api/Aperture/dummy`, {
|
|
||||||
method: "POST",
|
method: "POST",
|
||||||
headers: {
|
headers: {
|
||||||
accesstoken: token,
|
accesstoken: token,
|
||||||
|
|
10
order.ts
10
order.ts
|
@ -1,10 +1,3 @@
|
||||||
import {
|
|
||||||
HOST,
|
|
||||||
Paginacion,
|
|
||||||
paginacionToSearchParams,
|
|
||||||
Paging,
|
|
||||||
} from "./common.js";
|
|
||||||
|
|
||||||
export interface OrderDto {
|
export interface OrderDto {
|
||||||
SituacionOrden?: null | string;
|
SituacionOrden?: null | string;
|
||||||
Date: string;
|
Date: string;
|
||||||
|
@ -118,10 +111,11 @@ export interface PaymentDto {
|
||||||
export interface OrderResponse {}
|
export interface OrderResponse {}
|
||||||
|
|
||||||
export async function order(
|
export async function order(
|
||||||
|
host: string,
|
||||||
token: string,
|
token: string,
|
||||||
order: OrderDto
|
order: OrderDto
|
||||||
): Promise<OrderResponse> {
|
): Promise<OrderResponse> {
|
||||||
const res = await fetch(`${HOST}/api/Aperture/order`, {
|
const res = await fetch(`${host}/api/Aperture/order`, {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
headers: {
|
headers: {
|
||||||
accesstoken: token,
|
accesstoken: token,
|
||||||
|
|
10
package.json
10
package.json
|
@ -1,10 +1,11 @@
|
||||||
{
|
{
|
||||||
"name": "hyperpop",
|
"name": "@suttyweb/hyperpop",
|
||||||
"version": "0.0.0",
|
"version": "0.1.1",
|
||||||
"description": "Un cliente de API de https://github.com/TangoSoftware/ApiTiendas",
|
"description": "Un cliente de API de https://github.com/TangoSoftware/ApiTiendas",
|
||||||
"main": "index.js",
|
"license": "SEE LICENSE IN LICENSE",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc",
|
"build": "tsc",
|
||||||
|
"prepublish": "tsc",
|
||||||
"watch-build": "tsc --watch",
|
"watch-build": "tsc --watch",
|
||||||
"format": "prettier --write .",
|
"format": "prettier --write .",
|
||||||
"check-format": "prettier --check .",
|
"check-format": "prettier --check .",
|
||||||
|
@ -19,7 +20,8 @@
|
||||||
"api"
|
"api"
|
||||||
],
|
],
|
||||||
"author": "Sutty <hi@sutty.nl>",
|
"author": "Sutty <hi@sutty.nl>",
|
||||||
"license": "SEE LICENSE IN LICENSE",
|
"main": "dist/index.js",
|
||||||
|
"types": "dist/index.d.ts",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"prettier": "^2.4.1",
|
"prettier": "^2.4.1",
|
||||||
"typescript": "^4.4.3"
|
"typescript": "^4.4.3"
|
||||||
|
|
10
price.ts
10
price.ts
|
@ -1,9 +1,4 @@
|
||||||
import {
|
import { Paginacion, paginacionToSearchParams, Paging } from "./common.js";
|
||||||
HOST,
|
|
||||||
Paginacion,
|
|
||||||
paginacionToSearchParams,
|
|
||||||
Paging,
|
|
||||||
} from "./common.js";
|
|
||||||
|
|
||||||
export interface PriceQuery {
|
export interface PriceQuery {
|
||||||
paginacion?: Paginacion;
|
paginacion?: Paginacion;
|
||||||
|
@ -25,6 +20,7 @@ export interface PriceResponse {
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getPrices(
|
export async function getPrices(
|
||||||
|
host: string,
|
||||||
token: string,
|
token: string,
|
||||||
options: PriceQuery
|
options: PriceQuery
|
||||||
): Promise<PriceResponse> {
|
): Promise<PriceResponse> {
|
||||||
|
@ -37,7 +33,7 @@ export async function getPrices(
|
||||||
searchParams.set("SKUCode", options.SKUCode);
|
searchParams.set("SKUCode", options.SKUCode);
|
||||||
}
|
}
|
||||||
const res = await fetch(
|
const res = await fetch(
|
||||||
`${HOST}/api/Aperture/Price?${searchParams.toString()}`,
|
`${host}/api/Aperture/Price?${searchParams.toString()}`,
|
||||||
{
|
{
|
||||||
headers: {
|
headers: {
|
||||||
accesstoken: token,
|
accesstoken: token,
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import {
|
import {
|
||||||
QueryCustomer,
|
QueryCustomer,
|
||||||
queryCustomerToSearchParams,
|
queryCustomerToSearchParams,
|
||||||
HOST,
|
|
||||||
Paginacion,
|
Paginacion,
|
||||||
paginacionToSearchParams,
|
paginacionToSearchParams,
|
||||||
Paging,
|
Paging,
|
||||||
|
@ -28,6 +27,7 @@ export interface PreciosResponse {
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getPricesByCustomer(
|
export async function getPricesByCustomer(
|
||||||
|
host: string,
|
||||||
token: string,
|
token: string,
|
||||||
options: PriceByCustomerQuery
|
options: PriceByCustomerQuery
|
||||||
): Promise<PreciosResponse> {
|
): Promise<PreciosResponse> {
|
||||||
|
@ -43,7 +43,7 @@ export async function getPricesByCustomer(
|
||||||
queryCustomerToSearchParams(options.customer, searchParams);
|
queryCustomerToSearchParams(options.customer, searchParams);
|
||||||
}
|
}
|
||||||
const res = await fetch(
|
const res = await fetch(
|
||||||
`${HOST}/api/Aperture/PriceByCustomer?${searchParams.toString()}`,
|
`${host}/api/Aperture/PriceByCustomer?${searchParams.toString()}`,
|
||||||
{
|
{
|
||||||
headers: {
|
headers: {
|
||||||
accesstoken: token,
|
accesstoken: token,
|
||||||
|
|
10
product.ts
10
product.ts
|
@ -1,9 +1,4 @@
|
||||||
import {
|
import { Paginacion, paginacionToSearchParams, Paging } from "./common.js";
|
||||||
HOST,
|
|
||||||
Paginacion,
|
|
||||||
paginacionToSearchParams,
|
|
||||||
Paging,
|
|
||||||
} from "./common.js";
|
|
||||||
|
|
||||||
export interface ProductosQuery {
|
export interface ProductosQuery {
|
||||||
paginacion?: Paginacion;
|
paginacion?: Paginacion;
|
||||||
|
@ -54,6 +49,7 @@ export interface ProductosResponse {
|
||||||
|
|
||||||
// https://github.com/TangoSoftware/ApiTiendas#art%C3%ADculos
|
// https://github.com/TangoSoftware/ApiTiendas#art%C3%ADculos
|
||||||
export async function getProductos(
|
export async function getProductos(
|
||||||
|
host: string,
|
||||||
token: string,
|
token: string,
|
||||||
options: ProductosQuery
|
options: ProductosQuery
|
||||||
): Promise<ProductosResponse> {
|
): Promise<ProductosResponse> {
|
||||||
|
@ -66,7 +62,7 @@ export async function getProductos(
|
||||||
searchParams.set("filter", options.filter);
|
searchParams.set("filter", options.filter);
|
||||||
}
|
}
|
||||||
const res = await fetch(
|
const res = await fetch(
|
||||||
`${HOST}/api/Aperture/Product?${searchParams.toString()}`,
|
`${host}/api/Aperture/Product?${searchParams.toString()}`,
|
||||||
{
|
{
|
||||||
headers: {
|
headers: {
|
||||||
accesstoken: token,
|
accesstoken: token,
|
||||||
|
|
|
@ -1,9 +1,4 @@
|
||||||
import {
|
import { Paginacion, paginacionToSearchParams, Paging } from "./common.js";
|
||||||
HOST,
|
|
||||||
Paginacion,
|
|
||||||
paginacionToSearchParams,
|
|
||||||
Paging,
|
|
||||||
} from "./common.js";
|
|
||||||
|
|
||||||
export interface PublicationsQuery {
|
export interface PublicationsQuery {
|
||||||
paginacion?: Paginacion;
|
paginacion?: Paginacion;
|
||||||
|
@ -27,6 +22,7 @@ export interface PublicationsResponse {
|
||||||
|
|
||||||
// https://github.com/TangoSoftware/ApiTiendas#art%C3%ADculos
|
// https://github.com/TangoSoftware/ApiTiendas#art%C3%ADculos
|
||||||
export async function getPublications(
|
export async function getPublications(
|
||||||
|
host: string,
|
||||||
token: string,
|
token: string,
|
||||||
options: PublicationsQuery
|
options: PublicationsQuery
|
||||||
): Promise<PublicationsResponse> {
|
): Promise<PublicationsResponse> {
|
||||||
|
@ -42,7 +38,7 @@ export async function getPublications(
|
||||||
searchParams.set("variantCode", options.variantCode);
|
searchParams.set("variantCode", options.variantCode);
|
||||||
}
|
}
|
||||||
const res = await fetch(
|
const res = await fetch(
|
||||||
`${HOST}/api/Aperture/Publications?${searchParams.toString()}`,
|
`${host}/api/Aperture/Publications?${searchParams.toString()}`,
|
||||||
{
|
{
|
||||||
headers: {
|
headers: {
|
||||||
accesstoken: token,
|
accesstoken: token,
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
"module": "es6",
|
"module": "es6",
|
||||||
"moduleResolution": "node",
|
"moduleResolution": "node",
|
||||||
|
|
||||||
"outDir": "./build",
|
"outDir": "./dist",
|
||||||
|
|
||||||
"allowJs": false,
|
"allowJs": false,
|
||||||
|
|
||||||
|
@ -15,6 +15,8 @@
|
||||||
|
|
||||||
"strict": true,
|
"strict": true,
|
||||||
|
|
||||||
|
"declaration": true,
|
||||||
|
|
||||||
"skipLibCheck": true
|
"skipLibCheck": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue