migros-api-wrapper
Version:
Making the api of migros more accessible to the public.
226 lines • 10.4 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MigrosAPI = void 0;
const product_display_1 = require("./product-display");
const onesearch_oc_seaapi_1 = require("./onesearch-oc-seaapi");
const marketablestock_1 = require("./marketablestock");
const oauth2_1 = require("./oauth2");
const security_1 = require("./security");
const cumulus_1 = require("./cumulus");
const combineCookies_1 = require("../utils/combineCookies");
const migusto_1 = require("./migusto");
const stores_1 = require("./stores");
if (!process.env.MIGROS_API_WRAPPER_USERAGENT) {
process.env.MIGROS_API_WRAPPER_USERAGENT =
"Mozilla/5.0 (X11; Linux x86_64; rv:135.0) Gecko/20100101 Firefox/135.0";
}
class MigrosAPI {
constructor() {
this.stores = {
searchStores: async (searchStoresOptions, token = this.leShopToken) => {
return await stores_1.stores.searchStores(searchStoresOptions, {
leshopch: token,
});
},
};
this.products = {
productStock: {
getProductSupply: async (productSupplyOptions, token = this.leShopToken) => {
if (!token) {
throw Error("LeShop Token is undefined");
}
return await marketablestock_1.marketableStock.getProductSupply(productSupplyOptions, {
leshopch: token,
});
},
},
productDisplay: {
getProductCards: async (productCardOptions, token = this.leShopToken) => {
if (!token) {
throw Error("LeShop Token is undefined");
}
return await product_display_1.productDisplay.getProductCards(productCardOptions, {
leshopch: token,
});
},
getProductDetails: async (productSupplyOptions, token = this.leShopToken) => {
if (!token) {
throw Error("LeShop Token is undefined");
}
return await product_display_1.productDisplay.getProductDetails(productSupplyOptions, {
leshopch: token,
});
},
},
productSearch: {
categoryList: async (categoryListBody, categoryListOptions, token = this.leShopToken) => {
if (!token) {
throw Error("LeShop Token is undefined");
}
return await onesearch_oc_seaapi_1.productSearch.listCategories(categoryListBody, {
leshopch: token,
}, categoryListOptions);
},
searchProduct: async (productSearchBody, productSearchOptions, token = this.leShopToken) => {
if (!token) {
throw Error("LeShop Token is undefined");
}
return await onesearch_oc_seaapi_1.productSearch.searchProduct(productSearchBody, {
leshopch: token,
}, productSearchOptions);
},
},
};
this.account = {
oauth2: {
loginGuestToken: async () => {
const guestInfo = await oauth2_1.oauth2.getGuestToken();
this.leShopToken = guestInfo.token;
return await guestInfo;
},
getUserInfo: async (token = this.cumulusToken) => {
if (!token) {
throw Error("Cumulus Token is undefined");
}
return await oauth2_1.oauth2.getUserInfo(token);
},
},
security: {
getOptions: async (cookies = this.loginCookies) => {
if (!cookies) {
throw Error("Login Cookies are undefined");
}
const { body, "set-cookie": setCookie } = await security_1.security.getOptions(cookies);
this.loginCookies = (0, combineCookies_1.combineCookies)(cookies, setCookie);
return body;
},
getPaymentDevices: async (cookies = this.loginCookies) => {
if (!cookies) {
throw Error("Login Cookies are undefined");
}
const { body, "set-cookie": setCookie } = await security_1.security.getPaymentDevices(cookies);
this.loginCookies = (0, combineCookies_1.combineCookies)(cookies, setCookie);
return body;
},
},
cumulus: {
getCumulusStats: async (cookies = this.loginCookies) => {
if (!cookies) {
throw Error("Login Cookies are undefined");
}
const { body, "set-cookie": setCookie } = await cumulus_1.cumulus.getCumulusStats(cookies);
this.loginCookies = (0, combineCookies_1.combineCookies)(cookies, setCookie);
return body;
},
getCumulusReceipt: async (cumulusReceiptOptions, cookies = this.cumulusCookies, htmlOnly = false) => {
if (!cookies) {
throw Error("Cumulus Cookies are undefined");
}
return await cumulus_1.cumulus.getCumulusReceipt(cumulusReceiptOptions, cookies, htmlOnly);
},
getCumulusReceiptFromUrl: async (url, cookies = this.cumulusCookies, htmlOnly = false) => {
if (!cookies) {
throw Error("Cumulus Cookies are undefined");
}
return await cumulus_1.cumulus.getCumulusReceiptFromUrl(url, cookies, htmlOnly);
},
getCumulusReceipts: async (cumulusReceiptsOptions, cookies = this.cumulusCookies) => {
if (!cookies) {
throw Error("Cumulus Cookies are undefined");
}
return await cumulus_1.cumulus.getCumulusReceipts(cumulusReceiptsOptions, cookies);
},
getCumulusPrincipal: async (cookies = this.loginCookies) => {
if (!cookies) {
throw Error("Login Cookies are undefined");
}
const { body, "set-cookie": setCookie } = await cumulus_1.cumulus.getCumulusPrincipal(cookies);
this.loginCookies = (0, combineCookies_1.combineCookies)(cookies, setCookie);
return body;
},
getCumulusServicesSmall: async (cookies = this.loginCookies) => {
if (!cookies) {
throw Error("Login Cookies are undefined");
}
const { body, "set-cookie": setCookie } = await cumulus_1.cumulus.getCumulusServicesSmall(cookies);
this.loginCookies = (0, combineCookies_1.combineCookies)(cookies, setCookie);
return body;
},
getCumulusPaymentSites: async (cookies = this.loginCookies) => {
if (!cookies) {
throw Error("Login Cookies are undefined");
}
const { body, "set-cookie": setCookie } = await cumulus_1.cumulus.getCumulusPaymentSites(cookies);
this.loginCookies = (0, combineCookies_1.combineCookies)(cookies, setCookie);
return body;
},
getCumulusCreditCard: async (cookies = this.loginCookies) => {
if (!cookies) {
throw Error("Login Cookies are undefined");
}
const { body, "set-cookie": setCookie } = await cumulus_1.cumulus.getCumulusCreditCard(cookies);
this.loginCookies = (0, combineCookies_1.combineCookies)(cookies, setCookie);
return body;
},
getCumulusHousehold: async (cookies = this.loginCookies) => {
if (!cookies) {
throw Error("Login Cookies are undefined");
}
const { body, "set-cookie": setCookie } = await cumulus_1.cumulus.getCumulusHousehold(cookies);
this.loginCookies = (0, combineCookies_1.combineCookies)(cookies, setCookie);
return body;
},
getCumulusInvoice: async (cookies = this.loginCookies) => {
if (!cookies) {
throw Error("Login Cookies are undefined");
}
const { body, "set-cookie": setCookie } = await cumulus_1.cumulus.getCumulusInvoice(cookies);
this.loginCookies = (0, combineCookies_1.combineCookies)(cookies, setCookie);
return body;
},
},
};
}
get leShopToken() {
return this._leShopToken;
}
set leShopToken(value) {
this._leShopToken = value;
}
get cumulusToken() {
return this._cumulusToken;
}
set cumulusToken(value) {
this._cumulusToken = value;
}
get loginCookies() {
return this._loginCookies;
}
set loginCookies(value) {
this._loginCookies = value;
}
get cumulusCookies() {
return this._cumulusCookies;
}
set cumulusCookies(value) {
this._cumulusCookies = value;
}
}
exports.MigrosAPI = MigrosAPI;
MigrosAPI.products = {
productStock: marketablestock_1.marketableStock,
productDisplay: product_display_1.productDisplay,
productSearch: onesearch_oc_seaapi_1.productSearch,
};
MigrosAPI.stores = stores_1.stores;
MigrosAPI.account = {
oauth2: oauth2_1.oauth2,
security: security_1.security,
cumulus: cumulus_1.cumulus,
};
MigrosAPI.migusto = {
recipeSearch: migusto_1.migusto.recipeSearch,
recipeProducts: migusto_1.migusto.recipeProducts,
recipeDetails: migusto_1.migusto.recipeDetails,
};
//# sourceMappingURL=MigrosAPI.js.map