components_data_UserData.bs

import "pkg:/source/utils/config.bs"
import "pkg:/source/utils/misc.bs"

sub setDataFromJSON()
  json = m.top.json
  loadFromJSON(json)
end sub

sub loadFromJSON(json)
  m.top.id = json.User.id

  m.top.username = json.User.name
  m.top.token = json.AccessToken
end sub

sub saveToRegistry()
  users = parseJson(getSetting("available_users", "[]"))
  thisUser = invalid
  for each userItem in users
    if userItem.id = m.top.id then thisUser = userItem
  end for
  if not isValid(thisUser)
    users.push({
      id: m.top.id,
      username: m.top.username,
      server: m.global.server.serverUrl ' Note: 'server' here is a property name, not variable
    })
    setSetting("available_users", formatJson(users))
  end if
end sub

sub removeFromRegistry()
  newUsers = []
  users = parseJson(getSetting("available_users", "[]"))
  for each userItem in users
    if m.top.id <> userItem.id then newUsers.push(userItem)
  end for

  setSetting("available_users", formatJson(newUsers))
end sub