npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

sf-loader

v3.1.1

Published

Лоадер позволяет производить манипуляции с базой данных salesforce. Взаимодействие осуществляется при помощи библиотеки jsforce https://jsforce.github.io/ Документация: https://jsforce.github.io/document/

Downloads

9

Readme

Loader

Лоадер позволяет производить манипуляции с базой данных salesforce. Взаимодействие осуществляется при помощи библиотеки jsforce https://jsforce.github.io/ Документация: https://jsforce.github.io/document/

Структура

- loader
   ╞ data
     ╞ config.json - данные для создания презентаций (заполнение темплейтов)
     ╞ configsf.json - конфиг для доступа к песочнице, загрузки через ftp
     ╞ data.xls - данные для заполнения description и display order
   ╞ functions
     ╞ connect.js - авторизация и подключение к БД песочницы
     ╞ createCTL.js - создание CTL-файлов (файл-сопровождения архивов) для загрузки по ftp
     ╞ find.js - запрос и получение полной информации по презентации для дальнейшей работы
     ╞ ftpDeploy.js - авторизация и отправка файлов (CTL и zip) на ftp-сервер
     ╞ getConfirm.js - подтверждение для операции удаления презентации
     ╞ getDirsTree.js - получение структуры папок презентаций (работа с файловой системой в `zip\`)
     ╞ getInputValue.js - работа с консольным вводом
     ╞ parseJson.js - парсинг `loader\data\data.xls` в json
     ╞ getProductId.js - получение id продукта из SalesForce
   ╞ modules
     ╞ createPres.js - создание структуры презентации
     ╞ deletePres.js - удаление структуры презентации
     ╞ deploy.js - отправка презентации на ftp-сервер
     ╞ description.js - заполнение description презентации
     ╞ displayOrder.js - изменение display-order слайдов презентации
     ╞ manifest.js - создание манифеста
     ╞ checkStructure.js -  сравнивает структуру презентации в SalesForce и в папке zip на наличие новых слайдов или удаленных слайдов
     ╞ changeStructure.js - (перед запуском желательно проверить правильность изменений модулем checkStructure) добавляет в SalesForce записи о недостающих слайдах (если есть), удаляет из SalesForce лишние слайды(те которых нет в папке zip, но есть в SalesForce)
     ╞ createSurvey.js - создает Survey из json файла(для работы модуля требуются поля в package.json "survey_name", "survey_dir" и "survey_type"(сейчас есть 3 типа: Suggestion_Survey_vod, Recurring_vod, One_Time_vod), 
     пример: 
      "survey_name": "test_product_survay",
      "survey_dir": "./survey/test_product_survay",
      "survey_type": "Recurring_vod")
      Пример структуры jsona: 
      [
        {
          "question__text": "Какой сегодня день недели?",
          "question__type": "checkbox",
          "question__answers": [
            {
              "question__answer_text": "Понедельник",
            },
            {
              "question__answer_text": "Вторник",
            },
            {
              "question__answer_text": "Среда",
            },
            {
              "question__answer_text": "Четверг",
            },
            {
              "question__answer_text": "Пятница",
            },
            {
              "question__answer_text": "Суббота",
            },
            {
              "question__answer_text": "Воскресенье",
            }
          ]
        }
      ]
     ╞ deleteSurvey.js - ищет Survey по подстроке и удаляет его 
     ╞ findDuplicate.js - ищет КМ с именами слайдов из папки zip и смотрит есть ли слайды к которым приклеплен этот КМ, если нет слайдов с таким КМ, выводит сообщение с просьбой проверить этот КМ.Id
   ╞ index.js - исполняемый файл
- manifests - папка с выгруженными манифестами
- zip - папка с собранными презентациями

#Работа с загрузчиком, основные положения

Инструмент 'Loader' используется для автоматизации процессов создания, удаления, загрузки презентаций в тестовую среду salesforce Структура презентации представляет собой взаимодействие следующих сущностей (записи в бд salesforce):

  • презентация
  • слайды
  • keymessages
  • shared-ресурс (keymessage с типом shared-resource)

###Основные моменты:

  • Контент слайдов прикрепляется как zip-архив к keymessages
  • Презентация изначально никак не связана с keymessages
  • Для их связи используются cущности с типом 'slide'. В нем указываются айдишники презентации и keymessage
  • shared-ресурс возможно прикрепить к keymessages обычного типа (в нем рационально хранить конфиги, pdf, общие скрипты и стили для уменьшения объема zip-архивов слайдов сборки и отсутствия необходимость перезаливать всю презу)
  • shared-ресурс опционален и возможность работы с ним оговаривается при получени задания от менеджера.

В loader'е реализована данная схема:

  1. Получение id продукта под которым будет загружена презентация
  2. Создается презентация (берется ее id)
  3. Создается shared-ресурс (берется его id)
  4. Создаются keymessages с указанием id shared'a (берутся их id)
  5. Создаются слайды (используются id презентации и keymessages)

Манифесты генерятся только для презентаций с shared-ресурсом

shared-ресурс прикрепляется к основным key-messages

Последовательность

Если презентация не создана (отсутствует в песочнице), то создаем ее (список през прилетает из папки 'zip', по сути это названия папок собранных презентаций)

При создании презы есть возможность указать продукт. Дефолтное значение указано в package.json -> "product". Проверяем создан ли продукт в тестовой среде

ВАЖНО!!! если презентация уже создана, то создается дубляж презы и песочница засоряется. Нужно найти все вхождения по подстроке и удалить их. После этого создать заново.

Если возникает ошибка, то при попытке удалить презу из песочницы, вероятнее всего не удален shared ресурс у презы (смотрим внимательно на логи).

В этом случае, вручную удаляем ненужный shared из песочницы (через web-интерфейс salesforce). Так же на всякий случай смотрим удалены ли key-messages (ищем все вхождения через поиск в интерфейсе salesforce).

Слайды после этого удалять не нужно, нужно лишь вручную (web-интерфейс salesforce) удалить объект презентации. После этого создаем презу с помощью loadera

Deploy

Соответственно, последовательность действий следующая:

  1. Создаем презу
  2. Деплоим ее
  3. В случае необходимости обновляем display order. Конфиги хранятся в файле loader\data\data.xls.
  • Для добавления, создаем новую вкладку с именем презы, первая ячейка 'name', последующие в желаемом порядке слайдов. Важно не оставлять пустых строк.
  1. Descriptions. Тот же файл, вкладка descriptions
  2. При передаче презентаций клиенту неодходимо создавать манифесты - слепок-эксель из песочницы salesforce

#Check-list

  • [ ] Добавить возможность выгрузки манифестов без shared (реализовано в https://bitbucket.org/onpoint_dev/boehringer_pradaxa_praxbind_19_2).
  • [ ] Добавить возможность создания и удаления всех презентаций сразу на основе зипов.
  • [ ] В manifestUsual в поле Hidden определять если продукт "sandoz" то "NO"