File Transfer Service

SFTP bilgilerini tanımlamak için,

Servis Kullanımı:

URL: https://fts.elektraweb.com/${dosyadıveuzantı}loginToken=${token}&hotelId=${hotelId}

Method: POST

*Gönderilecek olan dosya binary olarak body’ den gönderilmelidir

Parametreler:

loginToken: kullanıcının nodejs tokenı

hotelId: SFTP bilgilerini sorgulamak için

Parametreler query params olarak URL’den gönderilmelidir

Örnek İstek URL:

https://fts.elektraweb.com/test.txt?loginToken=123&hotelId=123

Angus içerisinde örnek kullanım:

(() => {
  //dosyamızı oluşturmak için datayı çekiyoruz. gelen data csv formatında
  const respSubscribe = this.api
    .func({
      Object: 'FN_REVIEWPRO_CHECKOUTGUEST_CSV',
      Parameters: {
        STARTDATE: this.filterPanels.first.panelService.formGroup.controls
          .STARTDATE.value,
        ENDDATE: this.filterPanels.first.panelService.formGroup.controls.ENDDATE
          .value,
      },
    })
    .pipe(
      rxjs.map((resp) => {
        if (!resp?.[0]?.[0]?.DATA) {
          return null;
        }
        //dosya ismini oluşturuyoruz
        let fname = this.filterPanels.first.panelService.formGroup.controls
          .STARTDATE.value;
        let fileName = 'GUESTS_' + fname + '.csv';
        return {
          fileName: fileName,
          data: resp[0][0].DATA,
        };
      }),
      //oluşturalan dosyayı sunucuya yüklüyoruz.
      rxjs.switchMap((file) => {
        return angus.api.http
          .post(
            'https://fts.elektraweb.com/' +
              file.fileName +
              `?hotelId=${angus.api.tenant.HOTELID}
                 &loginToken=${angus.api.loginToken}
                 `,
            file.data,
            {}
          )
          .pipe(rxjs.timeout(120000));
      }),
      rxjs.tap((res) => {
        // Eğer başarılıysa
        if (res?.status == 'OK') {
          let successMsg = angus.languageService.dynamicTranslator.translate(
            'SFTP sending success'
          );
          angus.serviceWorkerService.snackBar.open(successMsg, '(x)', {
            duration: 10e3,
          });
        }
      })
    )
    .subscribe();
})();

Last updated