Guest User

Untitled

a guest
Sep 24th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. fetchFileList() {
  2. return new Promise((resolve, reject) => {
  3. const sshClient = new Client();
  4. let isReady = false;
  5. logger.info("fetchFileList making SF connection");
  6. sshClient.on("ready", () => {
  7. isReady = true;
  8. logger.info("Ready");
  9. sshClient.sftp((err, sftp) => {
  10. if (err) {
  11. logger.error("Some error occoured ", { err });
  12. reject("Error establishing sftp connection");
  13. }
  14. logger.info("Sftp connection is successful");
  15. sftp.readdir(CONST.EXTRACT.FTP_DIRECTORY, (err, files) => {
  16. if (err) {
  17. reject(new CustomError("Sftp read dir", err));
  18. }
  19. // Read all file 'formats' from entity db
  20. sortFilesByTables(files)
  21. .then(result => {
  22. resolve({ sshClient, sftp, result });
  23. })
  24. .catch(err => {
  25. reject(new CustomError("Error sorting files by tables ", err));
  26. });
  27. });
  28. });
  29. });
  30. sshClient.on("error", err => {
  31. logger.error("Error connecting to sftp server ", err);
  32. webHook
  33. .send(
  34. utils.composeSlackMessage(
  35. "Error connecting to sftp server",
  36. CONST.EXPORT.SLACK_MESSAGE_TYPES.ERROR,
  37. err
  38. )
  39. )
  40. .catch(err => logger.error("Webkook catch ", err));
  41. reject(new CustomError("Error connecting to sftp server ", err));
  42. });
  43.  
  44. sshClient.on("end", () => {
  45. if (!isReady) {
  46. logger.error(
  47. "fetchFileList on end Callback could not establish sftp connection"
  48. );
  49. reject(
  50. "fetchFileList on end Callback could not establish sftp connection"
  51. );
  52. }
  53. });
  54.  
  55. sshClient.connect({
  56. host: ftpCredentials.host,
  57. port: ftpCredentials.port,
  58. username: ftpCredentials.username,
  59. password: ftpCredentials.password,
  60. readyTimeout: 90000
  61. });
  62. });
Add Comment
Please, Sign In to add comment