export class QueryParams {
  static toString(objectToQuery: unknown): string {
    try {
      const object = new Object(objectToQuery);
      const entries = Object.entries(object);
      const params: string[] = [];

      entries.forEach(([key, value]) => {
        if (Array.isArray(value)) {
          if (!value.length) return;

          const values = value.join(',');
          params.push(`${key}=[${values}]`);

          return;
        }

        if (value) {
          params.push(`${key}=${value}`);
        }
      });

      return params.join('&');
    } catch (err) {
      throw new Error(
        'Houve um erro ao converter os parâmetros da requisição.',
      );
    }
  }
}
