Blame view

lib/sms.js 742 Bytes
49eaf19a3   Adhidarma Hadiwinoto   SMS is ok
1
2
3
4
5
6
7
8
9
  'use strict';
  
  const moment = require('moment');
  
  function extract(raw) {
      if (!raw) return null;
      const lines = raw.trim().split(/[
  \r]+/m);
      if (!lines) return null;
5ae543453   Adhidarma Hadiwinoto   Report via HTTP
10
      const metadata = lines[0].split(',').map(el => el.replace(/"/g, '')) || [];
49eaf19a3   Adhidarma Hadiwinoto   SMS is ok
11

5ae543453   Adhidarma Hadiwinoto   Report via HTTP
12
13
      const tsFromRaw = `${metadata[3]} ${metadata[4].replace(/\+\d+/, '')}`;
      const ts = moment(tsFromRaw, 'YY/MM/DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');
49eaf19a3   Adhidarma Hadiwinoto   SMS is ok
14
15
16
  
      const result = {
          metadata: {
5ae543453   Adhidarma Hadiwinoto   Report via HTTP
17
18
              status: metadata[0].replace(/^.+: /, ''),
              from: metadata[1].replace(/^\+/, ''),
49eaf19a3   Adhidarma Hadiwinoto   SMS is ok
19
20
21
22
23
24
25
26
27
28
29
30
              ts,
              raw: lines[0],
          },
          message: lines.slice(1).join('
  ').trim(),
          raw,
      };
  
      return result;
  }
  
  exports.extract = extract;