Files
cypress/packages/server/lib/user.ts
Tim Griesser d0cf250f57 refactor: remove @packages/desktop-gui (#19127)
* chore: Remove references to desktop-gui in CI & scripts

* More path updates

* Remove desktop-gui cypress tests

* remove add:project

* remove begin:auth

* remove close:browser

* remove close:project

* remove external:open

* remove get:current:user

* remove get:orgs

* remove gui:error

* remove get:runs

* remove get:options

* remove get:projects

* remove get:project:statuses

* remove get:project:status

* remove get:dashboard:projects

* remove get:record:keys

* remove get:release:notes

* remove get:specs

* remove get:user:editor

* remove set:user:editor

* remove launch:browser

* remove log:out

* remove on:focus:tests

* remove: on:menu:clicked

* remove open:file

* remove open:finder

* remove open:project

* remove on:config:changed

* remove on:spec:changed

* remove on:project:error

* remove on:project:warning

* remove ping:api:server

* remove ping:baseUrl

* remove remove:project

* remove request:access

* remove setup:dashboard:project

* remove set:project:id

* remove requestAccess

* remove show:directory:dialog

* remove show:new:spec:dialog

* remove updater:check

* remove updater:run

* remove window:open/close

* remove new:project:banner:closed

* remove has:opened:cypress

* remove remove:scaffolded:files

* remove set:clipboard:text

* remove set:prompt:shown

* ipc & static method cleanup

* remove packages/desktop-gui

* bump yarn.lock, standardize webpack version

* bump yarn.lock
2021-11-29 08:58:32 +10:00

70 lines
1.4 KiB
TypeScript

const debug = require('debug')('cypress:server:user')
const api = require('./api')
const cache = require('./cache')
const errors = require('./errors')
export = {
get () {
return cache.getUser()
},
set (user) {
return cache.setUser(user)
},
getBaseLoginUrl () {
return api.getAuthUrls()
.get('dashboardAuthUrl')
},
logOut () {
return this.get().then((user) => {
const authToken = user && user.authToken
return cache.removeUser().then(() => {
if (authToken) {
return api.postLogout(authToken)
}
})
})
},
syncProfile (authToken) {
debug('synchronizing user profile')
return api.getMe(authToken)
.then((res) => {
debug('received /me %o', res)
const user = {
authToken,
name: res.name,
email: res.email,
}
return this.set(user)
.return(user)
})
},
ensureAuthToken () {
return this.get().then((user) => {
// return authToken if we have one
let at
if (user && (at = user.authToken)) {
debug('found authToken %s', at)
return at
}
// else throw the not logged in error
const error = errors.get('NOT_LOGGED_IN')
// tag it as api error since the user is only relevant
// in regards to the api
error.isApiError = true
throw error
})
},
}