Skillshub appfolio-upgrade-migration

install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/jeremylongshore/claude-code-plugins-plus-skills/appfolio-upgrade-migration" ~/.claude/skills/comeonoliver-skillshub-appfolio-upgrade-migration && rm -rf "$T"
manifest: skills/jeremylongshore/claude-code-plugins-plus-skills/appfolio-upgrade-migration/SKILL.md
source content

appfolio upgrade migration | sed 's/\b(.)/\u\1/g'

API Version Migration

// Adapter pattern for API version changes
class AppFolioVersionAdapter {
  private version: "v1" | "v2";
  private client: any;

  constructor(version: "v1" | "v2" = "v1") {
    this.version = version;
  }

  async getProperties(): Promise<any[]> {
    if (this.version === "v2") {
      // v2 may return paginated results
      return this.paginatedGet("/properties");
    }
    return (await this.client.get("/properties")).data;
  }

  private async paginatedGet(path: string): Promise<any[]> {
    const results: any[] = [];
    let cursor: string | null = null;
    do {
      const { data } = await this.client.get(path, { params: { cursor } });
      results.push(...data.results);
      cursor = data.next_cursor;
    } while (cursor);
    return results;
  }
}

Resources