mirror of
https://github.com/dwaxweiler/connector-mobilizon
synced 2025-06-05 21:59:25 +02:00
remove unused code and dependencies
This commit is contained in:
@ -1,78 +0,0 @@
|
||||
import SessionCache from './session-cache.js'
|
||||
import { request } from 'graphql-request'
|
||||
import DateTimeWrapper from './date-time-wrapper.js'
|
||||
|
||||
export function getUpcomingEvents({ url, limit }) {
|
||||
const query = `
|
||||
query ($limit: Int) {
|
||||
events(limit: $limit) {
|
||||
elements {
|
||||
id,
|
||||
title,
|
||||
url,
|
||||
beginsOn,
|
||||
endsOn,
|
||||
physicalAddress {
|
||||
description,
|
||||
locality
|
||||
}
|
||||
},
|
||||
total
|
||||
}
|
||||
}
|
||||
`
|
||||
const dataInCache = SessionCache.get(sessionStorage, {
|
||||
url,
|
||||
query,
|
||||
variables: { limit },
|
||||
})
|
||||
if (dataInCache !== null) {
|
||||
return Promise.resolve(dataInCache)
|
||||
}
|
||||
return request(url, query, { limit }).then((data) => {
|
||||
SessionCache.add(sessionStorage, { url, query, variables: { limit } }, data)
|
||||
return Promise.resolve(data)
|
||||
})
|
||||
}
|
||||
|
||||
export function getUpcomingEventsByGroupName({ url, limit, groupName }) {
|
||||
const query = `
|
||||
query ($afterDatetime: DateTime, $groupName: String!, $limit: Int) {
|
||||
group(preferredUsername: $groupName) {
|
||||
organizedEvents(afterDatetime: $afterDatetime, limit: $limit) {
|
||||
elements {
|
||||
id,
|
||||
title,
|
||||
url,
|
||||
beginsOn,
|
||||
endsOn,
|
||||
physicalAddress {
|
||||
description,
|
||||
locality
|
||||
}
|
||||
},
|
||||
total
|
||||
}
|
||||
}
|
||||
}
|
||||
`
|
||||
const afterDatetime = DateTimeWrapper.getCurrentDatetimeAsString()
|
||||
const dataInCache = SessionCache.get(sessionStorage, {
|
||||
url,
|
||||
query,
|
||||
variables: { afterDatetime, groupName, limit },
|
||||
})
|
||||
if (dataInCache !== null) {
|
||||
return Promise.resolve(dataInCache)
|
||||
}
|
||||
return request(url, query, { afterDatetime, groupName, limit }).then(
|
||||
(data) => {
|
||||
SessionCache.add(
|
||||
sessionStorage,
|
||||
{ url, query, variables: { afterDatetime, groupName, limit } },
|
||||
data,
|
||||
)
|
||||
return Promise.resolve(data)
|
||||
},
|
||||
)
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
import test from 'ava'
|
||||
import hash from './object-hash-wrapper.js'
|
||||
|
||||
test('#hash object', (t) => {
|
||||
t.is(hash({ foo: 'bar' }), 'a75c05bdca7d704bdfcd761913e5a4e4636e956b')
|
||||
})
|
@ -1,5 +0,0 @@
|
||||
import objectHash from 'object-hash'
|
||||
|
||||
export default function hash(object) {
|
||||
return objectHash(object)
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
import test from 'ava'
|
||||
import SessionCache from './session-cache.js'
|
||||
|
||||
const fakeStorage = {
|
||||
elements: {},
|
||||
|
||||
clear() {
|
||||
this.elements = {}
|
||||
},
|
||||
|
||||
getItem(key) {
|
||||
const value = this.elements[key]
|
||||
if (value === undefined) return null
|
||||
return value
|
||||
},
|
||||
|
||||
setItem(key, value) {
|
||||
this.elements[key] = value
|
||||
},
|
||||
}
|
||||
|
||||
test.afterEach(() => {
|
||||
fakeStorage.clear()
|
||||
})
|
||||
|
||||
test('#add & #get', (t) => {
|
||||
SessionCache.add(fakeStorage, { a: 'b' }, { c: 'd' })
|
||||
t.deepEqual(SessionCache.get(fakeStorage, { a: 'b' }), { c: 'd' })
|
||||
})
|
||||
|
||||
test('#get no entry', (t) => {
|
||||
t.is(SessionCache.get(fakeStorage, { a: 'bb' }), null)
|
||||
})
|
@ -1,27 +0,0 @@
|
||||
import hash from './object-hash-wrapper.js'
|
||||
|
||||
const MAX_AGE_IN_MS = 120000
|
||||
|
||||
export default class SessionCache {
|
||||
static add(storage, parameters, data) {
|
||||
const key = hash(parameters)
|
||||
const timestamp = Date.now()
|
||||
const value = {
|
||||
data,
|
||||
timestamp,
|
||||
}
|
||||
storage.setItem(key, JSON.stringify(value))
|
||||
}
|
||||
|
||||
static get(storage, parameters) {
|
||||
const key = hash(parameters)
|
||||
const value = JSON.parse(storage.getItem(key))
|
||||
if (
|
||||
value &&
|
||||
value.timestamp &&
|
||||
value.timestamp > Date.now() - MAX_AGE_IN_MS
|
||||
)
|
||||
return value.data
|
||||
return null
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user