Merge pull request #14 from h3poteto/refactor
Refactor main/index, remove unused function
This commit is contained in:
commit
4907a698ce
|
@ -0,0 +1,45 @@
|
|||
import empty from 'is-empty'
|
||||
|
||||
export default class Account {
|
||||
constructor (db) {
|
||||
this.db = db
|
||||
}
|
||||
|
||||
listInstances () {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.db.find({accessToken: { $ne: '' }}, (err, doc) => {
|
||||
if (err) return reject(err)
|
||||
if (empty(doc)) return reject(new EmptyRecordError('empty'))
|
||||
const instances = doc.map((e, i, array) => {
|
||||
return { baseURL: e.baseURL, id: e._id }
|
||||
})
|
||||
resolve(instances)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
getInstance (id) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.db.findOne(
|
||||
{
|
||||
_id: id
|
||||
},
|
||||
(err, doc) => {
|
||||
if (err) return reject(err)
|
||||
if (empty(doc)) return reject(new EmptyRecordError('empty'))
|
||||
const instance = {
|
||||
baseURL: doc.baseURL,
|
||||
id: doc.id
|
||||
}
|
||||
resolve(instance)
|
||||
}
|
||||
)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
class EmptyRecordError {
|
||||
constructor (message) {
|
||||
this.message = message
|
||||
}
|
||||
}
|
|
@ -1,5 +1,4 @@
|
|||
import Mastodon from 'mastodon-api'
|
||||
import empty from 'is-empty'
|
||||
|
||||
const appName = 'whalebird'
|
||||
const scope = 'read write follow'
|
||||
|
@ -57,39 +56,5 @@ export default class Authentication {
|
|||
})
|
||||
})
|
||||
}
|
||||
|
||||
// TODO: このクラスにいる必要性がない,外に出したい
|
||||
listInstances () {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.db.find({accessToken: { $ne: '' }}, (err, doc) => {
|
||||
if (err) return reject(err)
|
||||
if (empty(doc)) reject(new EmptyTokenError('empty'))
|
||||
const instances = doc.map((e, i, array) => {
|
||||
return { baseURL: e.baseURL, id: e._id }
|
||||
})
|
||||
resolve(instances)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
loadTokenFromLocal () {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.db.findOne(
|
||||
{
|
||||
baseURL: this.baseURL
|
||||
},
|
||||
(err, doc) => {
|
||||
if (err) return reject(err)
|
||||
return resolve(doc.accessToken)
|
||||
}
|
||||
)
|
||||
})
|
||||
}
|
||||
// TODO: Refresh access token when expired
|
||||
}
|
||||
|
||||
class EmptyTokenError {
|
||||
constructor (message) {
|
||||
this.message = message
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import storage from 'electron-json-storage'
|
|||
import empty from 'is-empty'
|
||||
|
||||
import Authentication from './auth'
|
||||
import Account from './account'
|
||||
|
||||
/**
|
||||
* Set `__static` path to static files in production
|
||||
|
@ -58,81 +59,70 @@ app.on('activate', () => {
|
|||
|
||||
let auth = new Authentication(db)
|
||||
|
||||
// TODO: error handling
|
||||
ipcMain.on('get-auth-link', (event, domain) => {
|
||||
ipcMain.on('get-auth-url', (event, domain) => {
|
||||
auth.getAuthorizationUrl(`https://${domain}`)
|
||||
.catch(err => console.error(err))
|
||||
.catch((err) => {
|
||||
console.error(err)
|
||||
event.sender.send('error-get-auth-url', err)
|
||||
})
|
||||
.then((url) => {
|
||||
console.log(url)
|
||||
event.sender.send('auth-link-reply', url)
|
||||
event.sender.send('response-get-auth-url', url)
|
||||
shell.openExternal(url)
|
||||
})
|
||||
})
|
||||
|
||||
// TODO: error handling
|
||||
ipcMain.on('get-access-token', (event, code) => {
|
||||
auth.getAccessToken(code)
|
||||
.catch(err => console.error(err))
|
||||
.catch((err) => {
|
||||
console.error(err)
|
||||
event.sender.send('error-get-access-token', err)
|
||||
})
|
||||
.then((token) => {
|
||||
db.findOne({
|
||||
accessToken: token
|
||||
}, (err, doc) => {
|
||||
if (err) return event.sender.send('error-access-token', err)
|
||||
if (empty(doc)) return event.sender.send('error-access-token', 'error document is empty')
|
||||
event.sender.send('access-token-reply', doc._id)
|
||||
if (err) return event.sender.send('error-get-access-token', err)
|
||||
if (empty(doc)) return event.sender.send('error-get-access-token', 'error document is empty')
|
||||
event.sender.send('response-get-access-token', doc._id)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
ipcMain.on('load-access-token', (event, _) => {
|
||||
auth.loadTokenFromLocal()
|
||||
.catch((err) => {
|
||||
console.errror(err)
|
||||
event.sender.send('error-access-token', err)
|
||||
})
|
||||
.then((token) => {
|
||||
event.sender.send('local-access-token', token)
|
||||
})
|
||||
})
|
||||
|
||||
ipcMain.on('list-instances', (event, _) => {
|
||||
auth.listInstances()
|
||||
.catch((err) => {
|
||||
console.error(err)
|
||||
event.sender.send('empty-instances', err)
|
||||
})
|
||||
.then((instances) => {
|
||||
event.sender.send('instances', instances)
|
||||
})
|
||||
})
|
||||
|
||||
// storage access
|
||||
ipcMain.on('get-instance-token', (event, _) => {
|
||||
// json storage
|
||||
ipcMain.on('get-social-token', (event, _) => {
|
||||
storage.get('config', (err, data) => {
|
||||
if (err || empty(data)) {
|
||||
console.log(err)
|
||||
event.sender.send('error-instance-token', err)
|
||||
event.sender.send('error-get-social-token', err)
|
||||
} else {
|
||||
event.sender.send('instance-token', data.token)
|
||||
event.sender.send('response-get-social-token', data.token)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
// db
|
||||
// nedb
|
||||
ipcMain.on('list-instances', (event, _) => {
|
||||
const account = new Account(db)
|
||||
account.listInstances()
|
||||
.catch((err) => {
|
||||
console.error(err)
|
||||
event.sender.send('error-list-instances', err)
|
||||
})
|
||||
.then((instances) => {
|
||||
event.sender.send('response-list-instances', instances)
|
||||
})
|
||||
})
|
||||
|
||||
ipcMain.on('get-instance', (event, id) => {
|
||||
db.findOne(
|
||||
{
|
||||
_id: id
|
||||
},
|
||||
(err, doc) => {
|
||||
if (err || empty(doc)) return event.sender.send('empty-instance', err)
|
||||
const instance = {
|
||||
baseURL: doc.baseURL,
|
||||
id: doc.id
|
||||
}
|
||||
event.sender.send('instance', instance)
|
||||
}
|
||||
)
|
||||
const account = new Account(db)
|
||||
account.getInstance(id)
|
||||
.catch((err) => {
|
||||
event.sender.send('error-get-instance', err)
|
||||
})
|
||||
.then((instance) => {
|
||||
event.sender.send('response-get-instance', instance)
|
||||
})
|
||||
})
|
||||
|
||||
/**
|
||||
|
|
|
@ -8,11 +8,11 @@ const Authorize = {
|
|||
submit ({ commit }, code) {
|
||||
return new Promise((resolve, reject) => {
|
||||
ipcRenderer.send('get-access-token', code)
|
||||
ipcRenderer.on('access-token-reply', (event, arg) => {
|
||||
console.log(arg)
|
||||
resolve(arg)
|
||||
ipcRenderer.on('response-get-access-token', (event, id) => {
|
||||
console.log(id)
|
||||
resolve(id)
|
||||
})
|
||||
ipcRenderer.on('error-access-token', (event, err) => {
|
||||
ipcRenderer.on('error-get-access-token', (event, err) => {
|
||||
console.log(err)
|
||||
})
|
||||
})
|
||||
|
|
|
@ -14,10 +14,10 @@ const GlobalHeader = {
|
|||
listInstances ({ commit }) {
|
||||
return new Promise((resolve, reject) => {
|
||||
ipcRenderer.send('list-instances', 'list')
|
||||
ipcRenderer.on('empty-instances', (event, err) => {
|
||||
ipcRenderer.on('error-list-instances', (event, err) => {
|
||||
reject(err)
|
||||
})
|
||||
ipcRenderer.on('instances', (event, instances) => {
|
||||
ipcRenderer.on('response-list-instances', (event, instances) => {
|
||||
commit('updateInstances', instances)
|
||||
resolve(instances)
|
||||
})
|
||||
|
|
|
@ -17,8 +17,8 @@ const Login = {
|
|||
},
|
||||
actions: {
|
||||
searchInstance ({ commit }, domain) {
|
||||
ipcRenderer.send('get-instance-token', 'get')
|
||||
ipcRenderer.on('instance-token', (event, token) => {
|
||||
ipcRenderer.send('get-social-token', 'get')
|
||||
ipcRenderer.on('response-get-social-token', (event, token) => {
|
||||
axios
|
||||
.get(`https://instances.social/api/1.0/instances/search?q=${domain}`, {
|
||||
'headers': { 'Authorization': `Bearer ${token}` }
|
||||
|
@ -31,9 +31,12 @@ const Login = {
|
|||
},
|
||||
fetchLogin ({ commit }, instance) {
|
||||
return new Promise((resolve, reject) => {
|
||||
ipcRenderer.send('get-auth-link', instance)
|
||||
ipcRenderer.on('auth-link-reply', (event, arg) => {
|
||||
resolve(arg)
|
||||
ipcRenderer.send('get-auth-url', instance)
|
||||
ipcRenderer.on('error-get-auth-url', (event, err) => {
|
||||
reject(err)
|
||||
})
|
||||
ipcRenderer.on('response-get-auth-url', (event, url) => {
|
||||
resolve(url)
|
||||
})
|
||||
})
|
||||
},
|
||||
|
|
|
@ -16,11 +16,11 @@ const SideMenu = {
|
|||
actions: {
|
||||
fetchInstance ({ commit }, id) {
|
||||
ipcRenderer.send('get-instance', id)
|
||||
ipcRenderer.on('empty-instance', (event, err) => {
|
||||
ipcRenderer.on('error-get-instance', (event, err) => {
|
||||
// TODO: handle error
|
||||
console.log(err)
|
||||
})
|
||||
ipcRenderer.on('instance', (event, instance) => {
|
||||
ipcRenderer.on('response-get-instance', (event, instance) => {
|
||||
commit('updateInstance', instance)
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue