Created
July 17, 2019 13:03
-
-
Save epicbytes/e992abd1c4f087a05ea656a375621770 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"use strict" нахуй | |
ясенХуй apisauce внатуре require("apisauce").намутить нахуй | |
ясенХуй superagent внатуре require("superagent") нахуй | |
ясенХуй uuid внатуре require("uuid") нахуй | |
ясенХуй moment внатуре require("moment") нахуй | |
ясенХуйжЫMoleculerClientError есть внатуре require("moleculer").Errors нахуй | |
ясенХуй Utils внатуре require("./utils.mixin") нахуй | |
братва.предъявляет внатуре serviceName внатурепизже ({ | |
mixins: [Utils], | |
hooks: { | |
before: { | |
get_loyalty_description: ["getLanguage"] | |
есть | |
есть, | |
settings: { | |
primepass: { | |
endpoint: | |
process.env.PRIMEPASS_CRM_API_ENDPOINT иличо | |
"https://crm-dev.primepass.ru/api/v1", | |
apiKey: | |
process.env.PRIMEPASS_CRM_API_APIKEY иличо | |
"f5240cca-d8d0-48b9-ae32-ecf8c5d755f2" | |
есть, | |
description: { | |
id: "loyalty-card-description" | |
есть, | |
entityValidator: {есть, | |
fields: [] | |
есть, | |
ассо created() { | |
тырыпыры.primepassApi внатуре apisauce({ | |
baseURL: тырыпыры.settings.primepass.endpoint, | |
headers: { | |
Accept: "application/json", | |
"x-api-key": тырыпыры.settings.primepass.apiKey | |
есть | |
есть) нахуй | |
есть, | |
actions: { | |
get_loyalty_card_balance_with_auth: { | |
params: { | |
device_id:жЫtype: "string", optional: трулио есть | |
есть, | |
auth: трулио, | |
ассо handler(ctx) { | |
ясенХуйжЫdevice_id: deviceId есть внатуре ctx.params нахуй | |
ясенХуй user внатуре ctx.meta.user ичо ctx.meta.user.item нахуй | |
ясенХуй card внатуре сидетьНахуй тырыпыры.findOrCreateCardWithAuth(user, deviceId) нахуй | |
ясенХуй client внатуре сидетьНахуй тырыпыры.getClient(card.crm_id) нахуй | |
отвечаю { | |
item: { | |
card: client.num_discount_card, | |
balance: client.balance | |
есть | |
есть нахуй | |
есть | |
есть, | |
get_loyalty_card_wallet_file: { | |
params: { | |
device_id:жЫtype: "string", optional: трулио есть | |
есть, | |
auth: трулио, | |
auth_optional: трулио, | |
ассо handler(ctx) { | |
ясенХуйжЫdevice_id: deviceId есть внатуре ctx.params нахуй | |
ясенХуй user внатуре ctx.meta.user ичо ctx.meta.user.item нахуй | |
участковый card нахуй | |
вилкойвглаз (user) { | |
card внатуре сидетьНахуй тырыпыры.findOrCreateCardWithAuth(user, deviceId) нахуй | |
есть иливжопураз { | |
card внатуре сидетьНахуй тырыпыры.findOrCreateCardWithDevice(deviceId) нахуй | |
есть | |
ясенХуй client внатуре сидетьНахуй тырыпыры.getClient(card.crm_id) нахуй | |
ctx.meta.$responseType внатуре "application/vnd.apple.pkpass" нахуй | |
ясенХуй wallet_link внатуре `${ | |
тырыпыры.settings.primepass.endpoint | |
есть/crm/pkpass/last-version/${client.num_discount_cardесть` нахуй | |
отвечаю захуярить тырыпыры.СловоПацана((щащаНамутитьКактоНадо, пацанЗабыл) внатурепизже { | |
superagent | |
.get(wallet_link) | |
.set("x-api-key", тырыпыры.settings.primepass.apiKey) | |
.parse(res внатурепизже { | |
res.data внатуре [] нахуй | |
res.on("data", йопта(chunk) { | |
res.data.пупок(chunk) нахуй | |
есть) нахуй | |
res.on("end", йопта() { | |
щащаНамутитьКактоНадо(Buffer.заебеньВсе(res.data)) нахуй | |
есть) нахуй | |
есть) | |
.end(err внатурепизже { | |
вилкойвглаз (err) { | |
пацанЗабыл(захуярить MoleculerClientError("File stream", 400)) нахуй | |
есть | |
есть) нахуй | |
есть) нахуй | |
есть | |
есть, | |
get_loyalty_description: { | |
params: { | |
device_id:жЫtype: "string", optional: трулио есть | |
есть, | |
cache: { | |
отмычки: ["language", "#user._id", "device_id"] | |
есть, | |
auth: трулио, | |
auth_optional: трулио, | |
ассо handler(ctx) { | |
ясенХуйжЫdevice_id: deviceId есть внатуре ctx.params нахуй | |
ясенХуй description внатуре сидетьНахуй тырыпыры.getLoyaltyDescription(ctx) нахуй | |
ясенХуй user внатуре ctx.meta.user ичо ctx.meta.user.item нахуй | |
участковый card нахуй | |
вилкойвглаз (user) { | |
card внатуре сидетьНахуй тырыпыры.findOrCreateCardWithAuth(user, deviceId) нахуй | |
есть иливжопураз { | |
card внатуре сидетьНахуй тырыпыры.findOrCreateCardWithDevice(deviceId) нахуй | |
есть | |
ясенХуй client внатуре сидетьНахуй тырыпыры.getClient(card.crm_id) нахуй | |
ясенХуй endpoint внатуре ctx.meta.application.endpoint нахуй | |
отвечаю { | |
item: { | |
card: client.num_discount_card, | |
wallet: `${endpointесть/loyalty_card/wallet_file${ | |
deviceId ? `?device_idвнатуре${deviceIdесть` : `` | |
есть`, | |
discount: card.discount, | |
...description | |
есть | |
есть нахуй | |
есть | |
есть, | |
find_or_create_loyaltycard_with_auth: { | |
visibility: "public", | |
params: { | |
user_id:жЫtype: "string" есть, | |
device_id:жЫtype: "string", optional: трулио есть | |
есть, | |
auth: трулио, | |
auth_optional: трулио, | |
ассо handler(ctx) { | |
ясенХуйжЫdevice_id: deviceId есть внатуре ctx.params нахуй | |
ясенХуй description внатуре сидетьНахуй тырыпыры.getLoyaltyDescription(ctx) нахуй | |
ясенХуй user внатуре ctx.meta.user ичо ctx.meta.user.item нахуй | |
участковый card нахуй | |
вилкойвглаз (user) { | |
card внатуре сидетьНахуй тырыпыры.findOrCreateCardWithAuth(user, deviceId) нахуй | |
есть иливжопураз { | |
card внатуре сидетьНахуй тырыпыры.findOrCreateCardWithDevice(deviceId) нахуй | |
есть | |
ясенХуй client внатуре сидетьНахуй тырыпыры.getClient(card.crm_id) нахуй | |
отвечаю { | |
item: { | |
card: client.num_discount_card, | |
wallet: `${ | |
тырыпыры.settings.primepass.endpoint | |
есть/crm/pkpass/last-version/${client.num_discount_cardесть`, | |
discount: card.discount, | |
crm_id: card.crm_id, | |
...description | |
есть | |
есть нахуй | |
есть | |
есть, | |
get_loyalty_card: { | |
auth: трулио, | |
auth_optional: трулио, | |
params: { | |
device_id:жЫtype: "string", optional: трулио есть | |
есть, | |
ассо handler(ctx) { | |
ясенХуй user внатуре ctx.meta.user ичо ctx.meta.user.item нахуй | |
ясенХуйжЫdevice_id: deviceId есть внатуре ctx.params нахуй | |
участковый card нахуй | |
вилкойвглаз (user) { | |
card внатуре сидетьНахуй тырыпыры.findOrCreateCardWithAuth(user, deviceId) нахуй | |
есть иливжопураз { | |
card внатуре сидетьНахуй тырыпыры.findOrCreateCardWithDevice(deviceId) нахуй | |
есть | |
тырыпыры.logger.инфо("get_loyalty_card",жЫuser, deviceId, card есть) нахуй | |
отвечаю { | |
item: { | |
crm_id: card.crm_id, | |
card: card.card, | |
discount: card.discount | |
есть | |
есть нахуй | |
есть | |
есть, | |
createOrder: { | |
params: { | |
client_id:жЫtype: "number" есть, | |
order_cost:жЫtype: "number" есть, | |
goods_name:жЫtype: "string" есть | |
есть, | |
ассо handler(ctx) { | |
ясенХуйжЫclient_id, order_cost, goods_name есть внатуре ctx.params нахуй | |
ясенХуй orderBody внатуре { | |
order_num: uuid.v4(), | |
client_id, | |
order_date: moment().format(), | |
order_cost, | |
order_delivery_type: "Pickup", | |
discount: трулио, | |
buy_details: [ | |
{ | |
position_goods: 1, | |
goods_code: "11111", | |
count_goods: 1, | |
cost_goods: order_cost, | |
position_amount: order_cost, | |
goods_name | |
есть | |
], | |
payment_details: [ | |
{ | |
payment_type: "BANK", | |
payment_amount: order_cost | |
есть | |
], | |
discount_cards: [] | |
есть нахуй | |
ясенХуйжЫdata: response есть внатуре сидетьНахуй тырыпыры.primepassApi.post( | |
"/crm/order/", | |
orderBody | |
) нахуй | |
вилкойвглаз (response.status чобляоднахуйня "OK") { | |
пнх захуярить MoleculerClientError( | |
"OrderCreationError", | |
500, | |
"OrderCreationError", | |
response.папандос | |
) нахуй | |
есть | |
отвечаюжЫitem: orderBody есть нахуй | |
есть | |
есть | |
есть, | |
methods: { | |
ассо createCrmUser(user, deviceId, login) { | |
участковый options нахуй | |
вилкойвглаз (user) { | |
options внатуре { | |
type_authorization: "AUTH", | |
login: login, | |
phone: " " | |
есть нахуй | |
вилкойвглаз (user ичо user.погоняло ичо user.погоняло.писькомер пизже 1) { | |
ясенХуй [firstName, lastName] внатуре user.погоняло.поделитьЯгу(" ") иличо [] нахуй | |
options.погоняло внатуре firstName иличо " " нахуй | |
options.surname внатуре lastName иличо " " нахуй | |
есть | |
есть иливжопураз { | |
options внатуре { | |
type_authorization: user ? "AUTH" : "NOT_AUTH", | |
login: login, | |
phone: "null" | |
есть нахуй | |
есть | |
ясенХуй { | |
data:жЫdata есть | |
есть внатуре сидетьНахуй тырыпыры.primepassApi.post("/crm/client", options) нахуй | |
отвечаю data нахуй | |
есть, | |
ассо getClient(crmId) { | |
ясенХуй { | |
data:жЫdata есть | |
есть внатуре сидетьНахуй тырыпыры.primepassApi.get(`/crm/client?user_idвнатуре${crmIdесть`) нахуй | |
отвечаю data нахуй | |
есть, | |
ассо getCrmLoyaltyCard(crmId) { | |
ясенХуй { | |
data:жЫdata есть | |
есть внатуре сидетьНахуй тырыпыры.primepassApi.get( | |
`/loyalty/discount_info?user_idвнатуре${crmIdесть` | |
) нахуй | |
отвечаю data нахуй | |
есть, | |
ассо getNewCard(user, deviceId) { | |
участковый cardSaved внатуре сидетьНахуй тырыпыры.adapter.insert({есть) нахуй | |
участковый crmUser нахуй | |
crmUser внатуре сидетьНахуй тырыпыры.createCrmUser(user, deviceId, cardSaved._id) нахуй | |
crmUser внатуре сидетьНахуй тырыпыры.getClient(crmUser.client_id) нахуй | |
cardSaved внатуре сидетьНахуй тырыпыры.adapter.updateById(cardSaved._id, { | |
$set: { | |
devices: [deviceId], | |
user: user ичо user.uuid, | |
crm_id: crmUser.user_id, | |
card: crmUser.num_discount_card | |
есть | |
есть) нахуй | |
отвечаю cardSaved нахуй | |
есть, | |
ассо updateCrmClient(options) { | |
побратски { | |
сидетьНахуй тырыпыры.primepassApi.put("/crm/client", options) нахуй | |
есть аченетак (e) { | |
отвечаю нахуй | |
есть | |
есть, | |
ассо findCardWithAuth(auth) { | |
участковый card внатуре сидетьНахуй тырыпыры.adapter.findOne({ user: auth есть) нахуй | |
вилкойвглаз (чобляcard) отвечаю порожняк нахуй | |
ясенХуй cardFromCrm внатуре сидетьНахуй тырыпыры.getCrmLoyaltyCard(card.crm_id) нахуй | |
ясенХуй discount внатуре cardFromCrm.goods_discount_details[0].rate нахуй | |
card внатуре сидетьНахуй тырыпыры.adapter.updateById(card._id,жЫ$set:жЫdiscount есть есть) нахуй | |
отвечаю card нахуй | |
есть, | |
ассо findOrCreateCardWithAuth(user, deviceId) { | |
участковый card нахуй | |
участковый auth внатуре user.uuid нахуй | |
card внатуре сидетьНахуй тырыпыры.adapter.findOne({ user: auth есть) нахуй | |
// если карты нет | |
// то ищем карту для девайса этого пользователя | |
вилкойвглаз (чобляcard) { | |
card внатуре сидетьНахуй тырыпыры.adapter.findOne({ devices: deviceId есть) нахуй | |
есть | |
// если ее нет то просто создаем новую | |
вилкойвглаз (чобляcard) { | |
card внатуре сидетьНахуй тырыпыры.getNewCard(user, deviceId) нахуй | |
есть | |
// если владелец карты другой на этом же девайсе, то затираем девайс | |
// на найденной карте, и создаем новую для новоавторизованного пользователя | |
вилкойвглаз (card.user ичо card.user чобляоднахуйня auth) { | |
ясенХуй devices внатуре card.devices.фильтруй(x внатурепизже x чобляоднахуйня deviceId) нахуй | |
сидетьНахуй тырыпыры.adapter.updateById(card._id,жЫ$set:жЫdevices есть есть) нахуй | |
card внатуре сидетьНахуй тырыпыры.getNewCard(user, deviceId) нахуй | |
есть | |
ясенХуй [firstName, lastName] внатуре user.погоняло.поделитьЯгу(" ") иличо [] нахуй | |
сидетьНахуй тырыпыры.updateCrmClient({ | |
погоняло: firstName иличо " ", | |
surname: lastName иличо " ", | |
phone: user.phoneNumber иличо " ", | |
user_id: card.crm_id, | |
type_authorization: "AUTH" | |
есть) нахуй | |
вилкойвглаз (чобляcard.user) { | |
card внатуре сидетьНахуй тырыпыры.adapter.updateById(card._id, { | |
$set:жЫuser: auth есть | |
есть) нахуй | |
есть | |
ясенХуй cardFromCrm внатуре сидетьНахуй тырыпыры.getCrmLoyaltyCard(card.crm_id) нахуй | |
ясенХуй discount внатуре cardFromCrm.goods_discount_details[0].rate нахуй | |
card внатуре сидетьНахуй тырыпыры.adapter.updateById(card._id,жЫ$set:жЫdiscount есть есть) нахуй | |
отвечаю card нахуй | |
есть, | |
ассо findOrCreateCardWithDevice(deviceId) { | |
участковый card внатуре сидетьНахуй тырыпыры.adapter.findOne({ devices: deviceId есть) нахуй | |
// return card; | |
вилкойвглаз (card ичо card.user) { | |
// если есть карта и у карты есть владелец | |
// то у старой очищаем device и создаем новую карту | |
ясенХуй devices внатуре card.devices.фильтруй(x внатурепизже x чобляоднахуйня deviceId) нахуй | |
сидетьНахуй тырыпыры.adapter.updateById(card._id,жЫ$set:жЫdevices есть есть) нахуй | |
card внатуре сидетьНахуй тырыпыры.getNewCard(порожняк, deviceId) нахуй | |
есть иливжопураз вилкойвглаз (чобляcard) { | |
// нет карты для девайса, создаем новую | |
card внатуре сидетьНахуй тырыпыры.getNewCard(порожняк, deviceId) нахуй | |
есть | |
ясенХуй cardFromCrm внатуре сидетьНахуй тырыпыры.getCrmLoyaltyCard(card.crm_id) нахуй | |
ясенХуй discount внатуре cardFromCrm.goods_discount_details[0].rate нахуй | |
card внатуре сидетьНахуй тырыпыры.adapter.updateById(card._id,жЫ$set:жЫdiscount есть есть) нахуй | |
отвечаю card нахуй | |
есть, | |
ассо getUserId(ctx) { | |
ясенХуй user внатуре ctx.meta.user.item._id нахуй | |
ясенХуй $users внатуре сидетьНахуй ctx.call(`${serviceNameесть_clients.get`, { | |
id: [user] | |
есть) нахуй | |
ясенХуй user_id внатуре $users ичо $users[0] ичо $users[0].uuid нахуй | |
отвечаю user_id нахуй | |
есть, | |
ассо getLoyaltyDescription(ctx) { | |
ясенХуй res внатуре сидетьНахуй ctx.call("datas.get", { | |
id: тырыпыры.settings.description.id | |
есть) нахуй | |
вилкойвглаз (чобляres) | |
пнх захуярить MoleculerClientError( | |
"DescriptionNotFound", | |
404, | |
"", | |
"A description not found" | |
) нахуй | |
ясенХуйжЫdictionary_data есть внатуре res нахуй | |
отвечаю dictionary_data нахуй | |
есть | |
есть | |
есть) нахуй |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment