Agent skill
appfolio-sdk-patterns
Apply production-ready patterns for AppFolio REST API integration. Trigger: "appfolio patterns".
Install this agent skill to your Project
npx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/tree/main/plugins/saas-packs/appfolio-pack/skills/appfolio-sdk-patterns
SKILL.md
appfolio sdk patterns | sed 's/\b(.)/\u\1/g'
Overview
Production patterns for AppFolio API: typed client, pagination, response caching, and error handling.
Instructions
Step 1: Typed API Client
// src/appfolio/typed-client.ts
import axios, { AxiosInstance } from "axios";
interface Property {
id: string; name: string; property_type: string;
address: { street: string; city: string; state: string; zip: string };
unit_count: number;
}
interface Tenant {
id: string; first_name: string; last_name: string;
email: string; phone: string; unit_id: string;
}
interface Lease {
id: string; unit_id: string; tenant_name: string;
start_date: string; end_date: string; rent_amount: number; status: string;
}
class AppFolioTypedClient {
private api: AxiosInstance;
constructor() {
this.api = axios.create({
baseURL: process.env.APPFOLIO_BASE_URL,
auth: { username: process.env.APPFOLIO_CLIENT_ID!, password: process.env.APPFOLIO_CLIENT_SECRET! },
timeout: 30000,
});
}
async getProperties(): Promise<Property[]> { return (await this.api.get("/properties")).data; }
async getTenants(): Promise<Tenant[]> { return (await this.api.get("/tenants")).data; }
async getLeases(): Promise<Lease[]> { return (await this.api.get("/leases")).data; }
}
export { AppFolioTypedClient, Property, Tenant, Lease };
Step 2: Response Cache
const cache = new Map<string, { data: any; expiry: number }>();
async function cachedGet<T>(client: AxiosInstance, path: string, ttlMs = 60000): Promise<T> {
const cached = cache.get(path);
if (cached && cached.expiry > Date.now()) return cached.data;
const { data } = await client.get(path);
cache.set(path, { data, expiry: Date.now() + ttlMs });
return data;
}
Resources
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
dockerfile-generator
Dockerfile Generator - Auto-activating skill for DevOps Basics. Triggers on: dockerfile generator, dockerfile generator Part of the DevOps Basics skill category.
branch-naming-helper
Branch Naming Helper - Auto-activating skill for DevOps Basics. Triggers on: branch naming helper, branch naming helper Part of the DevOps Basics skill category.
readme-generator
Readme Generator - Auto-activating skill for DevOps Basics. Triggers on: readme generator, readme generator Part of the DevOps Basics skill category.
makefile-generator
Makefile Generator - Auto-activating skill for DevOps Basics. Triggers on: makefile generator, makefile generator Part of the DevOps Basics skill category.
gitignore-generator
Gitignore Generator - Auto-activating skill for DevOps Basics. Triggers on: gitignore generator, gitignore generator Part of the DevOps Basics skill category.
pre-commit-hook-setup
Pre Commit Hook Setup - Auto-activating skill for DevOps Basics. Triggers on: pre commit hook setup, pre commit hook setup Part of the DevOps Basics skill category.
Didn't find tool you were looking for?