UNPKG

@lomray/microservice-users

Version:

Users microservice based on NodeJS & inverted json.

47 lines (43 loc) 1.67 kB
'use strict'; var tslib = require('tslib'); var microserviceHelpers = require('@lomray/microservice-helpers'); var FilesEvent = require('@lomray/microservices-client-api/constants/events/files'); var typeorm = require('typeorm'); var index = require('../../constants/index.js'); var profile = require('../../entities/profile.js'); /** * Event handler for FileEntity from files microservice * * Listen events: create, update, remove * * Update user photo if user file changed */ const fileEntityChanged = ({ entity, payload: { eventName } = {}, }) => tslib.__awaiter(void 0, void 0, void 0, function* () { var _a; const { entityId: userId, fileId, type, microservice } = entity; // detect only related with user file entities if (type !== 'user' || microservice !== index.MS_NAME) { return false; } const repository = typeorm.getRepository(profile); switch (eventName) { case FilesEvent.FileEntityCreate: case FilesEvent.FileEntityUpdate: const { result } = yield microserviceHelpers.Api.get().files.file.view({ query: { where: { id: fileId } }, }); const photo = (_a = result === null || result === void 0 ? void 0 : result.entity) === null || _a === void 0 ? void 0 : _a.url; if (!photo) { return false; } yield repository.update({ userId }, { photo }); break; case FilesEvent.FileEntityRemove: yield repository.update({ userId }, { photo: null }); break; default: return false; } return true; }); module.exports = fileEntityChanged;