postObjData<T> method

Future<RocketModel> postObjData<T>(
  1. String endPoint, {
  2. RocketModel<T>? model,
  3. bool multi = false,
  4. dynamic inspect(
    1. dynamic data
    )?,
  5. Map<String, dynamic>? data,
  6. Map<String, dynamic>? params,
})

دالة خاصة بارسال البيانات على شكل النموذج الذي تم تمريره مع الدالة

model=>(النموذج)

inspect => (،ارجاع القيمة المراد استخدامها ,json التنقيب داخل )

Implementation

Future<RocketModel> postObjData<T>(String endPoint,
    {RocketModel<T>? model,
    bool multi = false,
    Function(dynamic data)? inspect,
    Map<String, dynamic>? data,
    Map<String, dynamic>? params}) async {
  model!.load(true);
  String srch = params != null ? _mapToString(params) : "";
  Uri url = Uri.parse(this.url + "/" + endPoint + "?" + srch);
  http.Response? response;
  try {
    response = await http
        .post(url, headers: headers, body: json.encode(data))
        .whenComplete(() => model.load(false));

    if (setCookies) {
      _updateCookie(response);
    }
    model.setFailed(false);
    return _objData<T>(response, model,
        inspect: inspect, multi: multi, endpoint: endPoint);
  } catch (e, s) {
    String body = "";
    int statusCode = 0;
    if (response != null) {
      body = response.body;
      statusCode = response.statusCode;
    }
    model.setException(RocketException(
        response: body,
        statusCode: statusCode,
        exception: e.toString(),
        stackTrace: s));
    model.setFailed(true);
    return Future.value(model);
  }
}