summaryrefslogtreecommitdiff
path: root/public/js/utils.js
blob: 91e7f133f6cb3d535a92775868aaa7347cdd1dd8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import base64url from 'base64url'

let uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i

export function checkNoteIdValid (id) {
  let result = id.match(uuidRegex)
  if (result && result.length === 1) {
    return true
  } else {
    return false
  }
}

export function encodeNoteId (id) {
  // remove dashes in UUID and encode in url-safe base64
  let str = id.replace(/-/g, '')
  let hexStr = Buffer.from(str, 'hex')
  return base64url.encode(hexStr)
}

export function decodeNoteId (encodedId) {
  // decode from url-safe base64
  let id = base64url.toBuffer(encodedId).toString('hex')
  // add dashes between the UUID string parts
  let idParts = []
  idParts.push(id.substr(0, 8))
  idParts.push(id.substr(8, 4))
  idParts.push(id.substr(12, 4))
  idParts.push(id.substr(16, 4))
  idParts.push(id.substr(20, 12))
  return idParts.join('-')
}