OverviewFilesCommitsIssuesDocsReleasesPeers

keet-deobfuscated / @holepunchto / keet-indexing / lib / private-profile / private-devices.js

29 lines · javascript ref:
const { PrivateDeviceSchema: t } = require("@holepunchto/keet-core-schemas"),
  { AddDeviceKeyOperation: e, AddDeviceAttestationOperation: i } = t.Operations
module.exports = class {
  static Operations = new Set([e.TYPE, i.TYPE])
  constructor(t) {
    ;((this.profile = t), (this.keys = null), (this.attestations = null))
  }
  initialize() {
    ;((this.keys = this.profile.view.collections.privateDeviceKeys),
      (this.attestations = this.profile.view.collections.privateDeviceAttestations))
  }
  async _applyAddDeviceKeyOperation(t, { id: e }) {
    const { devicePublicKey: i } = t.value
    ;(await this.keys.get(e.key)) || (await this.keys.update(e.key, i, { upsert: !0 }))
  }
  async _applyAddDeviceAttestationOperation(t) {
    const { devicePublicKey: e, attestation: i } = t.value
    ;(await this.attestations.get(e)) || (await this.attestations.update(e, i, { upsert: !0 }))
  }
  async autobaseApply(t, s) {
    switch (t.type) {
      case e.TYPE:
        return this._applyAddDeviceKeyOperation(t, s)
      case i.TYPE:
        return this._applyAddDeviceAttestationOperation(t, s)
    }
  }
}