import type { PackageInfo, SuspiciousAppInfo } from '../types/types';
import { Buffer } from 'buffer';

export const parseMalwareData = async (
  data: string[]
): Promise<SuspiciousAppInfo[]> => {
  return new Promise((resolve, reject) => {
    try {
      resolve(data.map((entry) => toSuspiciousAppInfo(entry)));
    } catch (error: any) {
      reject(`Error while parsing app data: ${error}`);
    }
  });
};

export const toSuspiciousAppInfo = (base64Value: string): SuspiciousAppInfo => {
  const data = JSON.parse(Buffer.from(base64Value, 'base64').toString('utf8'));
  const packageInfo = data.packageInfo as PackageInfo;
  return {
    packageInfo,
    reasons: data.reasons,
    permissions: data.permissions,
  } as SuspiciousAppInfo;
};
