Source Code

;; wudu-station -- wudu facility locator and ratings
(define-data-var station-count uint u0)
(define-map stations uint { owner: principal, location: (string-ascii 50), rating: uint, reviews: uint, active: bool })
(define-public (add-station (location (string-ascii 50)))
  (let ((id (+ (var-get station-count) u1)))
    (var-set station-count id)
    (map-set stations id { owner: tx-sender, location: location, rating: u0, reviews: u0, active: true }) (ok id)))
(define-public (rate-station (id uint) (score uint))
  (let ((s (unwrap! (map-get? stations id) (err u404))))
    (map-set stations id (merge s { rating: (+ (get rating s) score), reviews: (+ (get reviews s) u1) })) (ok true)))
(define-read-only (get-station (id uint)) (map-get? stations id))
(define-read-only (get-count) (var-get station-count))

Functions (4)

FunctionAccessArgs
add-stationpubliclocation: (string-ascii 50
rate-stationpublicid: uint, score: uint
get-stationread-onlyid: uint
get-countread-only