get_attribut_terms method

dynamic get_attribut_terms({
  1. String? context,
  2. int? page,
  3. int? per_page,
  4. String? search,
  5. List<int>? exclude,
  6. List<int>? include,
  7. String? order,
  8. String? orderby,
  9. bool? hide_empty,
  10. int? parent,
  11. int? product,
  12. String? slug,
  13. required int? attributes_id,
  14. int? term_id,
})

Implementation

get_attribut_terms(
    {String? context,
    int? page,
    int? per_page,
    String? search,
    List<int>? exclude,
    List<int>? include,
    String? order,
    String? orderby,
    bool? hide_empty,
    int? parent,
    int? product,
    String? slug,
    required int? attributes_id,
    int? term_id}) async {
  String request_api = 'products/attributes/$attributes_id/terms';

  if (term_id != null) {
    request_api = 'products/attributes/$attributes_id/terms/$term_id';
  } else {
    if (per_page != null) {
      request_api += '?per_page=$per_page';
    } else {
      request_api += '?per_page=100'; // Default perPage
    }

    if (context != null) request_api += '&context=$context';
    if (page != null) request_api += '&page=$page';
    if (search != null) request_api += '&search=$search';
    if (exclude != null) request_api += '&exclude=${exclude.join(',')}';
    if (include != null) request_api += '&include=${include.join(',')}';
    if (order != null) request_api += '&order=$order';
    if (orderby != null) request_api += '&order=$orderby';
    if (hide_empty != null) request_api += '&hide_empty=$hide_empty';
    if (product != null) request_api += '&product=$product';
    if (slug != null) request_api += '&slug=$slug';
  }
  Response res = await ApiServices()
      .getRequest(request_api, baseUrl, consumerKey, consumerSecret);
  // print(res);
  var decode_data = json.decode(res.body);
  // print(decode_data);
  if (term_id != null) {
    return ProductAttributeTermsModel.fromJson(decode_data);
  } else {
    List<ProductAttributeTermsModel> attribut_terms_list = [];
    for (var i = 0; i < decode_data.length; i++) {
      ProductAttributeTermsModel attribut_terms =
          ProductAttributeTermsModel.fromJson(decode_data[i]);
      attribut_terms_list.add(attribut_terms);
    }
    return attribut_terms_list;
  }
}