added deleted status for /samples
This commit is contained in:
		@@ -10,50 +10,52 @@ export default class Mail{
 | 
			
		||||
  static mailPass: string;
 | 
			
		||||
 | 
			
		||||
  static init() {
 | 
			
		||||
    this.mailPass = Array(64).fill(0).map(() => Math.floor(Math.random() * 10)).join('');
 | 
			
		||||
    this.uri = JSON.parse(process.env.VCAP_SERVICES).Mail[0].credentials.uri;
 | 
			
		||||
    this.auth.username = JSON.parse(process.env.VCAP_SERVICES).Mail[0].credentials.username;
 | 
			
		||||
    this.auth.password = JSON.parse(process.env.VCAP_SERVICES).Mail[0].credentials.password;
 | 
			
		||||
    axios({  // get registered mail addresses
 | 
			
		||||
      method: 'get',
 | 
			
		||||
      url: this.uri + '/management/userDomainMapping',
 | 
			
		||||
      auth: this.auth
 | 
			
		||||
    }).then(res => {
 | 
			
		||||
      return new Promise(async (resolve, reject) => {
 | 
			
		||||
        try {
 | 
			
		||||
          if (res.data.addresses.indexOf(this.address) < 0) {  // mail address not registered
 | 
			
		||||
            if (res.data.addresses.length) {  // delete wrong registered mail address
 | 
			
		||||
              await axios({
 | 
			
		||||
                method: 'delete',
 | 
			
		||||
                url: this.uri + '/management/mailAddresses/' + res.data.addresses[0],
 | 
			
		||||
    if (process.env.NODE_ENV === 'production') {  // only send mails in production
 | 
			
		||||
      this.mailPass = Array(64).fill(0).map(() => Math.floor(Math.random() * 10)).join('');
 | 
			
		||||
      this.uri = JSON.parse(process.env.VCAP_SERVICES).Mail[0].credentials.uri;
 | 
			
		||||
      this.auth.username = JSON.parse(process.env.VCAP_SERVICES).Mail[0].credentials.username;
 | 
			
		||||
      this.auth.password = JSON.parse(process.env.VCAP_SERVICES).Mail[0].credentials.password;
 | 
			
		||||
      axios({  // get registered mail addresses
 | 
			
		||||
        method: 'get',
 | 
			
		||||
        url: this.uri + '/management/userDomainMapping',
 | 
			
		||||
        auth: this.auth
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        return new Promise(async (resolve, reject) => {
 | 
			
		||||
          try {
 | 
			
		||||
            if (res.data.addresses.indexOf(this.address) < 0) {  // mail address not registered
 | 
			
		||||
              if (res.data.addresses.length) {  // delete wrong registered mail address
 | 
			
		||||
                await axios({
 | 
			
		||||
                  method: 'delete',
 | 
			
		||||
                  url: this.uri + '/management/mailAddresses/' + res.data.addresses[0],
 | 
			
		||||
                  auth: this.auth
 | 
			
		||||
                });
 | 
			
		||||
              }
 | 
			
		||||
              await axios({  // register right mail address
 | 
			
		||||
                method: 'post',
 | 
			
		||||
                url: this.uri + '/management/mailAddresses/' + this.address,
 | 
			
		||||
                auth: this.auth
 | 
			
		||||
              });
 | 
			
		||||
            }
 | 
			
		||||
            await axios({  // register right mail address
 | 
			
		||||
              method: 'post',
 | 
			
		||||
              url: this.uri + '/management/mailAddresses/' + this.address,
 | 
			
		||||
              auth: this.auth
 | 
			
		||||
            });
 | 
			
		||||
            resolve();
 | 
			
		||||
          }
 | 
			
		||||
          resolve();
 | 
			
		||||
        }
 | 
			
		||||
        catch (e) {
 | 
			
		||||
          reject(e);
 | 
			
		||||
        }
 | 
			
		||||
          catch (e) {
 | 
			
		||||
            reject(e);
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
      }).then(() => {
 | 
			
		||||
        return axios({  // set new mail password
 | 
			
		||||
          method: 'put',
 | 
			
		||||
          url: this.uri + '/management/mailAddresses/' + this.address + '/password/' + this.mailPass,
 | 
			
		||||
          auth: this.auth
 | 
			
		||||
        });
 | 
			
		||||
      }).then(() => {  // init done successfully
 | 
			
		||||
        console.info('Mail service established successfully');
 | 
			
		||||
        this.send('lukas.veit@bosch.com', 'Mail Service started', new Date().toString());
 | 
			
		||||
      }).catch(err => {  // anywhere an error occurred
 | 
			
		||||
        console.error(`Mail init error: ${err.request.method} ${err.request.path}: ${err.response.status}`,
 | 
			
		||||
          err.response.data);
 | 
			
		||||
      });
 | 
			
		||||
    }).then(() => {
 | 
			
		||||
      return axios({  // set new mail password
 | 
			
		||||
        method: 'put',
 | 
			
		||||
        url: this.uri + '/management/mailAddresses/' + this.address + '/password/' + this.mailPass,
 | 
			
		||||
        auth: this.auth
 | 
			
		||||
      });
 | 
			
		||||
    }).then(() => {  // init done successfully
 | 
			
		||||
      console.info('Mail service established successfully');
 | 
			
		||||
      this.send('lukas.veit@bosch.com', 'Mail Service started', new Date().toString());
 | 
			
		||||
    }).catch(err => {  // anywhere an error occurred
 | 
			
		||||
      console.error(`Mail init error: ${err.request.method} ${err.request.path}: ${err.response.status}`,
 | 
			
		||||
        err.response.data);
 | 
			
		||||
    });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static send (mailAddress, subject, content, f: (x?) => void = () => {}) {  // callback, executed empty or with error
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user