There are two issues with the current filter interface (that is used by getEntries for instance):
- We need to maintain a separate query param mapping
- The return type of a filtered response is not accurate. If I call
getEntries() with a filter on customersId, I'd expect the returned filter property to only have customersId.
I'd like to have an interface like this:
const response = await clockodo.getEntries({
filter: {
customersId: 123
}
});
// response is now a type that looks like this
type Response = {
paging: Paging
filter: {
customersId: number
},
entries: Array<Entry>
}
This allows us to type the filter for each endpoint. This should be doable with generics.
There are two issues with the current filter interface (that is used by
getEntriesfor instance):getEntries()with a filter oncustomersId, I'd expect the returnedfilterproperty to only havecustomersId.I'd like to have an interface like this:
This allows us to type the filter for each endpoint. This should be doable with generics.