Source Code

;; Media Uploads

(define-map media
  uint
  { owner: principal, url: (string-ascii 200), mediaType: (string-ascii 20) }
)

(define-data-var counter uint u0)

(define-public (upload-media (url (string-ascii 200)) (mediaType (string-ascii 20)))
  (let ((id (var-get counter)))
    (map-set media id { owner: tx-sender, url: url, mediaType: mediaType })
    (var-set counter (+ id u1))
    (ok id)
  )
)

(define-public (delete-media (id uint))
  (let ((m (unwrap! (map-get? media id) (err u404))))
    (asserts! (is-eq (get owner m) tx-sender) (err u403))
    (map-delete media id)
    (ok true)
  )
)

(define-read-only (get-media (id uint))
  (map-get? media id)
)

Functions (3)

FunctionAccessArgs
upload-mediapublicurl: (string-ascii 200
delete-mediapublicid: uint
get-mediaread-onlyid: uint