import baseX from 'base-x';

var BASE16 = '0123456789abcdef';
var bs16 = baseX(BASE16);

export function Base16Encode(value) {
  let is_open_base14 = sessionStorage.getItem('is_open_base16')
    ? JSON.parse(sessionStorage.getItem('is_open_base16'))
    : false;
  if (is_open_base14) return value ? bs16.encode(new Buffer(value)) : null;
  return value;
}

const giveKey = (key, datas) => {
  if (datas && datas[key]) {
    datas[key] = Base16Encode(datas[key]);
  }
  return datas;
};

export function giveBase16EnCode(datas, url) {
  if (url && typeof url === 'string') {

    const apiList = ['DataColumnApi', 'DataRightApi', 'DataObjApi', 'UserApi', 'UnifiedAppFormApi', 'DataObjApi'];
    const filiterList = apiList.filter((g) => {
      return url.indexOf(g) > -1;
    });
    if(!filiterList || !filiterList.length){
    //  console.log(url);
      return datas;
    }

    if (url.indexOf('DataColumnApi/getOptions') > -1) {
      return giveKey('filterSql', datas);
    }

    if (url.indexOf('DataColumnApi/getLabels') > -1) {
      return giveKey('allValues', datas);
    }

    if (url.indexOf('DataColumnApi/getSqlOptions') > -1) {
      return giveKey('allValues', datas);
    }

    if (url.indexOf('DataColumnApi/getSqlLabels') > -1) {
      return giveKey('allValues', datas);
    }
    if (url.indexOf('DataColumnApi/getSqlData') > -1) {
      datas = giveKey('allValues', datas);
      return giveKey('sqlKey', datas);
    }

    if (url.indexOf('DataRightApi/add') > -1) {
      return giveKey('filterSql', datas);
    }

    if (url.indexOf('DataRightApi/addBatch') > -1) {
      return giveKey('filterSql', datas);
    }

    if (url.indexOf('DataObjApi/add') > -1) {
      return giveKey('sqlScript', datas);
    }

    if (url.indexOf('UserApi/getPage') > -1) {
      return giveKey('addSignSql', datas);
    }

    if (url.indexOf('DataObjApi/getFormDataList') > -1) {
      return giveKey('custom', datas);
    }

    if (url.indexOf('DataObjApi/getFormDataPage') > -1) {
      datas = giveKey('custom', datas);
      return giveKey('sql', datas);
    }

    if (url.indexOf('UnifiedAppFormApi/examineProcess') > -1) {
      return giveKey('taskForm', datas);
    }

    if (url.indexOf('UnifiedAppFormApi/saveDraft') > -1) {
      return giveKey('content', datas);
    }

    if (url.indexOf('UnifiedAppFormApi/startProcess') > -1) {
      return giveKey('content', datas);
    }

    if (url.indexOf('UnifiedAppFormApi/startProcessByService') > -1) {
      return giveKey('content', datas);
    }

    if (url.indexOf('UnifiedAppFormApi/getHandleUser') > -1) {
      return giveKey('content', datas);
    }

    // if (url.indexOf('UnifiedServicePatternApi/updateForm') > -1) {
    //   return giveKey('content', datas);
    // }


  }

  return datas;
}
