Skip to content

refactor: use database transaction RPC for local coding sync#1269

Merged
Priyanshu-byte-coder merged 1 commit into
Priyanshu-byte-coder:mainfrom
bhavyanjain3004:issue-816
May 28, 2026
Merged

refactor: use database transaction RPC for local coding sync#1269
Priyanshu-byte-coder merged 1 commit into
Priyanshu-byte-coder:mainfrom
bhavyanjain3004:issue-816

Conversation

@bhavyanjain3004
Copy link
Copy Markdown
Contributor

Summary

Resolves #816. Refactors the local coding sessions sync endpoint to use a database-level transaction function (batch_upsert_sessions RPC). This ensures atomic writes and prevents PostgreSQL cardinality errors when duplicate date entries are present in a single batch.

Changes

  • Database Migration & Schema: Added a new migration for the batch_upsert_sessions(sessions jsonb) function and updated schema.sql.
  • API Refactoring: Replaced .upsert() with supabaseAdmin.rpc("batch_upsert_sessions") in src/app/api/local-coding/sync/route.ts.
  • Unit Tests: Added 10 tests in test/local-coding-sync.test.ts to verify authentication, validations, database limits, and RPC success/error handling.

How to Verify

1. Running the Automated Tests

Run the newly added unit tests specifically written for this endpoint:

npm test test/local-coding-sync.test.ts

@vercel
Copy link
Copy Markdown

vercel Bot commented May 27, 2026

@bhavyanjain3004 is attempting to deploy a commit to the PRIYANSHU DOSHI's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added gssoc26 GSSoC 2026 contribution type:refactor GSSoC type bonus: refactor (+10 pts) type:testing GSSoC type bonus: tests (+10 pts) labels May 27, 2026
@github-actions
Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Priyanshu-byte-coder — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

Priyanshu-byte-coder added a commit that referenced this pull request May 28, 2026
Co-authored-by: bhavyanjain3004 <bhavyanjain3004@users.noreply.github.com>
@Priyanshu-byte-coder Priyanshu-byte-coder added gssoc:approved GSSoC: PR approved for scoring level:intermediate GSSoC: Intermediate difficulty (35 pts) labels May 28, 2026
@Priyanshu-byte-coder Priyanshu-byte-coder merged commit cf3207f into Priyanshu-byte-coder:main May 28, 2026
11 checks passed
@github-actions
Copy link
Copy Markdown

🎉 Merged! Thanks for contributing to DevTrack.

If the project has been useful to you, a ⭐ star on the repo is the easiest way to support it — it helps DevTrack get discovered by more developers.

Keep an eye on open issues for your next contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc:approved GSSoC: PR approved for scoring gssoc26 GSSoC 2026 contribution level:intermediate GSSoC: Intermediate difficulty (35 pts) type:refactor GSSoC type bonus: refactor (+10 pts) type:testing GSSoC type bonus: tests (+10 pts)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix : use database transaction for local coding sync partial failure safety

2 participants