All files / src/utils notification.helper.ts

45.45% Statements 5/11
0% Branches 0/10
0% Functions 0/3
45.45% Lines 5/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 401x 1x         1x                                     1x                       1x    
import {PmoStatus, TimelineStep} from '../types';
import {Constants} from '../configs';
 
/**
 * Map nextStatus → link URI (Next Stage Page)
 */
export function getNotificationLink(nextStatus: number, pmoId?: number): string {
  const base: Record<number, string> = {
    [PmoStatus.NEW]:       '/scan-code/drop-result',
    [PmoStatus.DROPPED]:   '/scan-code/receive-result',
    [PmoStatus.RECEIVED]:  '/scan-code/packing-result',
    [PmoStatus.PACKING]:   '/scan-code/packed-result',
    [PmoStatus.PACKED]:    '/scan-code/for-pickup-result',
    [PmoStatus.PICKUP]:    '/scan-code/picked-result',
    [PmoStatus.COMPLETED]: '/scan-code/completed-result',
    [PmoStatus.REJECTED]:  '/scan-code/rejected-result',
  };
 
  const path = base[nextStatus] ?? '/scan-code';
  return pmoId ? `${path}?pmoId=${pmoId}` : path;
}
 
/**
 * Map nextStatus → notification template key (status update)
 */
export function getStatusUpdateNotificationTemplate(nextStatus: number): string | null {
  const map: Record<number, string> = {
    [PmoStatus.DROPPED]:   Constants.Notification.Drop,
    [PmoStatus.RECEIVED]:  Constants.Notification.Receive,
    [PmoStatus.PACKING]:   Constants.Notification.Packing,
    [PmoStatus.PACKED]:    Constants.Notification.Packed,
    [PmoStatus.PICKUP]:    Constants.Notification.Pickup,
    [PmoStatus.COMPLETED]: Constants.Notification.PickedUp,
  };
  return map[nextStatus] ?? null;
}
 
export function getRejectNotificationTemplate(fromStatus: number): string {
  return `scan_reject_${fromStatus}`;
}