records.sql 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. -- name: ListRecords :many
  2. SELECT r.*, z.zone_id as cf_zone_id, z.name as zone_name
  3. FROM records r
  4. JOIN zones z ON z.id = r.zone_id
  5. ORDER BY r.name;
  6. -- name: ListRecordsByZone :many
  7. SELECT r.*, z.zone_id as cf_zone_id, z.name as zone_name
  8. FROM records r
  9. JOIN zones z ON z.id = r.zone_id
  10. WHERE r.zone_id = ?
  11. ORDER BY r.name;
  12. -- name: ListNonStaticRecords :many
  13. SELECT r.*, z.zone_id as cf_zone_id, z.api_key as zone_api_key
  14. FROM records r
  15. JOIN zones z ON z.id = r.zone_id
  16. WHERE r.is_static = 0;
  17. -- name: GetRecord :one
  18. SELECT r.*, z.zone_id as cf_zone_id, z.name as zone_name
  19. FROM records r
  20. JOIN zones z ON z.id = r.zone_id
  21. WHERE r.id = ?;
  22. -- name: CreateRecord :one
  23. INSERT INTO records (zone_id, cf_record_id, name, type, content, proxied, is_static)
  24. VALUES (?, ?, ?, ?, ?, ?, ?)
  25. RETURNING *;
  26. -- name: UpdateRecord :one
  27. UPDATE records
  28. SET name = ?, type = ?, content = ?, proxied = ?, is_static = ?,
  29. last_updated_at = CASE WHEN ? = 1 THEN NULL ELSE last_updated_at END,
  30. updated_at = CURRENT_TIMESTAMP
  31. WHERE id = ?
  32. RETURNING *;
  33. -- name: UpdateRecordContent :exec
  34. UPDATE records
  35. SET content = ?, last_updated_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP
  36. WHERE id = ?;
  37. -- name: DeleteRecord :exec
  38. DELETE FROM records WHERE id = ?;
  39. -- name: UpsertRecord :one
  40. INSERT INTO records (zone_id, cf_record_id, name, type, content, proxied, is_static)
  41. VALUES (?, ?, ?, ?, ?, ?, ?)
  42. ON CONFLICT(zone_id, cf_record_id) DO UPDATE SET
  43. name = excluded.name,
  44. type = excluded.type,
  45. content = excluded.content,
  46. proxied = excluded.proxied,
  47. updated_at = CURRENT_TIMESTAMP
  48. RETURNING *;
  49. -- name: DeleteRecordByCfID :exec
  50. DELETE FROM records WHERE zone_id = ? AND cf_record_id = ?;
  51. -- name: ListRecordCfIDsByZone :many
  52. SELECT cf_record_id FROM records WHERE zone_id = ?;