<<

#

- NAME
- DESCRIPTION
- SYNOPSIS
- METHODS
  - filter
  - filter_wants
  - validate
  - translate
  - params_to_objects

# NAME

Bugzilla::WebService::Util - Utility functions used inside of the WebService code. These are not functions that can be called via the WebService.

# DESCRIPTION

This is somewhat like Bugzilla::Util, but these functions are only used internally in the WebService code.

# SYNOPSIS

     filter({ include_fields => ['id', 'name'],
              exclude_fields => ['name'] }, $hash);
     my $wants = filter_wants $params, 'field_name';
     validate(@_, 'ids');

# METHODS

## filter

This helps implement the `include_fields` and `exclude_fields` arguments of WebService methods. Given a hash (the second argument to this subroutine), this will remove any keys that are not in `include_fields` and then remove any keys that are in `exclude_fields`.

An optional third option can be passed that prefixes the field name to allow filtering of data two or more levels deep.

For example, if you want to filter out the `id` key/value in components returned by Product.get, you would use the value `component.id` in your `exclude_fields` list.

## filter_wants

Returns `1` if a filter would preserve the specified field when passing a hash to "filter", `0` otherwise.

## validate

This helps in the validation of parameters passed into the WebService methods. Currently it converts listed parameters into an array reference if the client only passed a single scalar value. It modifies the parameters hash in place so other parameters should be unaltered.

## translate

WebService methods frequently take parameters with different names than the ones that we use internally in Bugzilla. This function takes a hashref that has field names for keys and returns a hashref with those keys renamed according to the mapping passed in with the second parameter (which is also a hashref).

## params_to_objects

Creates objects of the type passed in as the second parameter, using the parameters passed to a WebService method (the first parameter to this function). Helps make life simpler for WebService methods that internally create objects via both "ids" and "names" fields. Also de-duplicates objects that were loaded by both "ids" and "names". Returns an arrayref of objects.

<<