40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import { GrabUserResourceParams } from ".";
|
|
import _ from "lodash";
|
|
import { DsqlCrudQueryObject } from "../../../../types";
|
|
import ResourceLimits from "../../../../dict/resource-limits";
|
|
import _n from "../../../../utils/numberfy";
|
|
|
|
export default function (params?: GrabUserResourceParams) {
|
|
let queryObject: DsqlCrudQueryObject<{ [k: string]: any }> = {
|
|
limit: params?.noLimit ? undefined : ResourceLimits["general"],
|
|
order: {
|
|
field: "id",
|
|
strategy: "DESC",
|
|
},
|
|
};
|
|
|
|
if (params?.targetID) {
|
|
const targetIDQuery: DsqlCrudQueryObject<{ [k: string]: any }> = {
|
|
query: {
|
|
id: {
|
|
value: _n(params.targetID).toString(),
|
|
},
|
|
},
|
|
};
|
|
queryObject = _.merge(queryObject, targetIDQuery);
|
|
}
|
|
|
|
let queryFixedObject: DsqlCrudQueryObject<{ [k: string]: any }> =
|
|
params?.isSuperUser
|
|
? {}
|
|
: {
|
|
query: {
|
|
user_id: {
|
|
value: String(params?.userId || 0),
|
|
},
|
|
},
|
|
};
|
|
|
|
return _.merge(queryObject, params?.query, queryFixedObject);
|
|
}
|