Task
Implement all 9 Observations methods in url_builder.ts and add Observations method tests to url_builder.spec.ts.
Resolution (commit b9cd3df)
All acceptance criteria met:
Methods added: getObservations, getObservation, updateObservation, deleteObservation, getObservationDatastream (singular), getObservationSamplingFeature (singular), getObservationSystem (singular), getObservationHistory
Design note: Association endpoints use singular sub-paths (/datastream, /samplingFeature, /system) because each observation belongs to exactly one parent — unlike DataStreams which use plural forms for many-to-many associations.
Task
Implement all 9 Observations methods in
url_builder.tsand add Observations method tests tourl_builder.spec.ts.Resolution (commit
b9cd3df)All acceptance criteria met:
url_builder.tscontains all 9 Observations methods (8 new +createObservationfrom Issue Phase 2.6: DataStreams Methods #10)buildResourceUrl()andbuildQueryString()helperscreateObservation(Issue Phase 2.6: DataStreams Methods #10) already correctly routes to/datastreams/{id}/observations@param,@returns,@seeurl_builder.spec.tscontains 17 new Observations tests covering temporal filtering,resultTime=latest, cursor pagination, obsFormat encoding, CRUD, associations (singular sub-paths), history, and resource validationnpx tsc --noEmit)Methods added:
getObservations,getObservation,updateObservation,deleteObservation,getObservationDatastream(singular),getObservationSamplingFeature(singular),getObservationSystem(singular),getObservationHistoryDesign note: Association endpoints use singular sub-paths (
/datastream,/samplingFeature,/system) because each observation belongs to exactly one parent — unlike DataStreams which use plural forms for many-to-many associations.