run static method

String run(
  1. String arguments
)

Implementation

static String run(String arguments) {
  if (arguments.isEmpty) {
    return json.encode({
      "ErrorCode": ErrorCode.INVALID_INPUT.toString().split('.').last,
      "ErrorMessage": "Nenhum argumento foi fornecido"
    });
  }

  try {
    final Map<String, dynamic> paramsData = json.decode(arguments);
    Map<String, dynamic> result;

    switch (paramsData['method']) {
      case 'addItem':
        if (paramsData.containsKey("acc")) {
          result = Calculation.addItem(
            json.encode(paramsData["item"]),
            acc: json.encode(paramsData["acc"]));
        } else {
          result = Calculation.addItem(json.encode(paramsData["item"]));
        }
        break;
      case 'getAll':
        result = Calculation.getAll(json.encode(paramsData["acc"]));
        break;
      case 'removeItem':
        result = Calculation.removeItem(
          json.encode(paramsData["item"]),
          json.encode(paramsData["acc"]));
        break;
      case 'addAccountDiscount':
        result = Calculation.addAccountDiscount(
          json.encode(paramsData["discount"]),
          json.encode(paramsData["acc"]));
        break;
      case 'addItemDiscount':
        result = Calculation.addItemDiscount(
          json.encode(paramsData["discount"]),
          json.encode(paramsData["item"]),
          json.encode(paramsData["acc"]));
        break;
      case 'addServiceCharge':
        result = Calculation.addServiceCharge(
            json.encode(paramsData["serviceCharge"]),
            json.encode(paramsData["acc"]));
        break;
      case 'accountPayment':
        result = Calculation.accountPayment(
            json.encode(paramsData["payment"]),
            json.encode(paramsData["acc"]));
        break;
      case 'addItemModifier':
        result = Calculation.addItemModifier(
          json.encode(paramsData["item"]),
          json.encode(paramsData["acc"]),
          json.encode(paramsData["modifier"]));
        break;
      case 'updateItem':
        result = Calculation.updateItem(
            json.encode(paramsData["item"]),
            json.encode(paramsData["acc"]));
        break;
      case 'transferItem':
        var res = Calculation.transferItem(
            json.encode(paramsData["sourceAcc"]),
            json.encode(paramsData["destinationAcc"]),
            json.encode(paramsData["item"]));

        result = {
          "sourceAcc" : res[0],
          "destinationAcc": res[1]
        };
        break;
      default:
        result = {'error': 'Método não reconhecido'};
    }
    return json.encode(result);
  } catch (e) {
    return json.encode({'error': 'Erro: $e'});
  }
}