How can I convert complex Object to a Query String intended for WebApi:
export enum FilterCondition {
Equal,
NotEqual,
GreaterThan,
LessThan,
GreaterThanEqual,
LessThanEqual
}
export class QueryParameter {
propertyName: string;
filterCondition: FilterCondition
value: string;
}
export class QueryOptions {
queryParameters: QueryParameter[] = new Array<QueryParameter>();
}
I'm trying to write a generic function to convert a complex type to basic query I wrote this function to convert a simple object to query string
export class QueryStringBuilder {
static BuildParametersFromSearch<T>(obj: T): URLSearchParams {
let params: URLSearchParams = new URLSearchParams();
const objectKeys = Object.keys(obj) as Array<keyof T>;
for (let key of objectKeys) {
params.set(key, obj[key])
}
return params;
}
}
But I'm having trouble grasping how I can do this recursively for complex object with enums and arrays etc? Can anyone point me in the right direction or to something build in that already does this?