keap-client
Version:
A client to work with Infusionsoft/Keap API.
41 lines (36 loc) • 1.04 kB
text/typescript
import { Api } from "../utils/api";
import { Paginator } from "../utils/paginator";
import { createParams } from "../utils/queryParams";
export class Users {
private api: Api;
/**
* Creates a new Users model.
* @param api - The API client to use for making requests.
*/
constructor(api: Api) {
this.api = api;
}
async listUsers(options?: {
include_inactive?: boolean;
include_partners?: boolean;
limit?: number;
offset?: number;
}): Promise<Paginator<IUser> | undefined> {
const params = options
? createParams(options, [
"limit",
"offset",
"include_inactive",
"include_partners",
])
: "";
const r = await this.api.get("v1/users?" + params?.toString());
if (!r) return undefined;
return Paginator.wrap(this.api, r, "users");
}
async createUser(data: UserCreateRequest): Promise<IUser | undefined> {
const r = await this.api.post("v1/users", data);
if (!r) return undefined;
return r as IUser;
}
}