Commit Graph
27 Commits
Author SHA1 Message Date
github-actions[bot] 09f77e1fee chore(release): v0.0.1 v0.0.1 2026-03-26 02:01:47 +00:00
Stevan Freeborn 528d64b6f9 fix: fix mistakes in README.md documentation related to install command 2026-03-25 21:01:29 -05:00
Stevan Freeborn df648d924e chore: setup project info in cargo.toml and update links in README.md v0.0.0 2026-03-25 20:39:57 -05:00
Stevan Freeborn 524e2cf768 chore: update workflows 2026-03-25 20:33:56 -05:00
Stevan Freeborn 99fdd31148 chore: update workflows 2026-03-25 20:31:07 -05:00
Stevan Freeborn 8116d0a362 chore: update workflows 2026-03-25 20:28:23 -05:00
Stevan Freeborn 1ee50e83ca chore: add license 2026-03-25 20:14:30 -05:00
Stevan Freeborn f30ad7dd97 tests: fix flaky tests 2026-03-25 20:14:24 -05:00
Stevan Freeborn 77dd25f8d8 chore: add example.env for easy setup when cloning 2026-03-25 19:17:55 -05:00
Stevan Freeborn 54e9f04ae1 chore: suppress dead_code warnings in integration test common module 2026-03-25 19:15:45 -05:00
Stevan Freeborn 62fe93e8ed docs: add runnable examples section to README 2026-03-25 19:08:49 -05:00
Stevan Freeborn 9a5e00c560 fix: load .env file in integration tests and examples
Add dotenvy to dev-dependencies and call dotenvy::dotenv().ok() in
the integration test common module and all examples so env vars can
be loaded from a .env file.
2026-03-25 19:06:25 -05:00
Stevan Freeborn a517aef3bd feat: add integration tests and runnable examples
Add 91 integration tests (all #[ignore]) mirroring the JavaScript SDK's
integration test suite. Tests cover all endpoints: ping, apps, fields,
records, files, lists, and reports with success, auth, access, and
not-found scenarios.

Add 7 runnable examples (cargo run --example <name>) for quick manual
smoke testing against a real Onspring instance.

Both use env vars (API_BASE_URL, SANDBOX_API_KEY, TEST_*) matching the
JavaScript SDK setup.

Also rename crate to onspring-api-sdk-rust with [lib] name = "onspring"
so imports remain `use onspring::*`.
2026-03-25 18:57:45 -05:00
Stevan Freeborn 905f7f945a style: use 2-space indentation across entire codebase
Add rustfmt.toml with tab_spaces = 2 and reformat all source files,
tests, and README code examples to use 2-space indentation.
2026-03-25 14:11:08 -05:00
Stevan Freeborn 9201556646 docs: add comprehensive README with usage examples for all endpoints
Include badges, installation instructions, API key setup guide,
client configuration, error handling, and code examples for all
endpoint groups: connectivity, apps, fields, files, lists, records,
and reports. Follows the same structure and detail level as the
JavaScript SDK README.
2026-03-25 14:04:45 -05:00
Stevan Freeborn b4813dfd07 chore: fix things up 2026-03-25 14:01:11 -05:00
Stevan Freeborn 64e5bf0b72 ci: add automated version bump and tagging from conventional commits
Add version.yml workflow that runs on pushes to main, parses
conventional commit messages since the last tag, determines the
semver bump (feat=minor, fix=patch, breaking=major), updates
Cargo.toml version, commits, and pushes a version tag. The tag
push triggers the existing release.yml publish workflow. Skips
chore(release) commits to prevent infinite loops.
2026-03-25 13:57:41 -05:00
Stevan Freeborn 94e0afb67a ci: add GitHub Actions CI and release workflows
Add ci.yml running fmt, clippy, build, and test on stable + nightly
Rust for PRs and pushes to main. Add release.yml for automated crate
publishing to crates.io on version tag pushes. Remove dead_code allow
and add crate-level doc comment with usage example.
2026-03-25 13:48:35 -05:00
Stevan Freeborn fa81603c63 feat: add reports endpoint with get report and list reports methods
Implement ReportInfo, ReportData, and ReportRow models. Add get_report
(with optional data format and data type params) and list_reports
(paginated) methods. Tests cover report data retrieval, format
parameters, listing reports by app, and not-found error.
2026-03-25 13:47:11 -05:00
Stevan Freeborn 9d63911fc1 feat: add lists endpoint with save and delete list item methods
Implement SaveListItemRequest and SaveListItemResponse models. Add
save_list_item (create/update via PUT) and delete_list_item methods.
Tests cover creating, updating, deleting list items and not-found error.
2026-03-25 13:45:29 -05:00
Stevan Freeborn 1161c645bf feat: add files endpoint with info, download, upload, and delete
Implement FileInfo, FileResponse, SaveFileRequest, and
CreatedWithIdResponse models. Add get_file_info, get_file (binary
download), upload_file (multipart), and delete_file methods. Tests
cover metadata retrieval, binary content download with headers, file
upload, deletion, and not-found error with message extraction.
2026-03-25 13:44:03 -05:00
Stevan Freeborn f7050506d2 feat: add records endpoint with all CRUD and query methods
Implement Record, RecordFieldValue, SaveRecordRequest,
QueryRecordsRequest, BatchGetRecordsRequest, and BatchDeleteRecordsRequest
models. Add 7 endpoint methods: list_records, get_record, save_record,
delete_record, batch_get_records, query_records, batch_delete_records.
Add 9 tests covering all methods including parameterized queries.
2026-03-25 13:42:24 -05:00
Stevan Freeborn 46c54b4589 feat: add fields endpoint with get, batch-get, and list methods
Implement Field model supporting base fields and polymorphic variants
(list, formula, reference fields via optional properties). Add get_field,
batch_get_fields, and list_fields endpoint methods with tests covering
basic fields, list-type fields, batch retrieval, pagination, and
not-found scenarios.
2026-03-25 13:40:11 -05:00
Stevan Freeborn fe883a9dd2 feat: add apps endpoint with list, get, and batch-get methods
Implement App model and three endpoint methods: list_apps (paginated),
get_app (by ID), and batch_get_apps (up to 100 by IDs). Add
comprehensive tests for success, pagination, not-found, and batch
scenarios.
2026-03-25 13:37:55 -05:00
Stevan Freeborn 6735bca09f feat: add ping endpoint with test infrastructure
Implement ping() method on OnspringClient. Set up wiremock-based test
infrastructure with shared setup helper. Add tests for success and
unauthorized scenarios verifying correct headers are sent.
2026-03-25 13:35:52 -05:00
Stevan Freeborn 7f2209af1c feat: add project scaffold with core client, error types, and models
Set up Cargo.toml with dependencies (reqwest, serde, thiserror, tokio,
uuid, chrono). Implement OnspringClient with builder pattern and HTTP
helper methods. Define error types, enums, and paging models.
2026-03-25 13:34:02 -05:00
Stevan Freeborn 31d7659d1c chore: initial commit with README 2026-03-25 13:33:37 -05:00