You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.3 KiB

import {Controller, view, Session, Inject, Injectable, Locale, Validator, WebSocketBus, JSONMessageEvent, Logging, Bus, WebSocketCloseEvent} from '@extollo/lib'
import {UserLogin} from "../../../types/UserLogin";
@Injectable()
export class Home extends Controller {
@Inject()
protected readonly session!: Session;
@Inject()
protected readonly locale!: Locale;
@Inject()
protected readonly logging!: Logging
public welcome() {
this.session.set('app_visits', this.session.get('app_visits', 0) + 1)
const valid = new Promise<UserLogin>(() => {})
return view('@extollo:welcome', {
app_visits: this.session.get('app_visits'),
locale: this.locale.helper(),
})
}
public async socket(ws: WebSocketBus): Promise<void> {
ws.subscribe(JSONMessageEvent, event => {
this.logging.info('Got JSON message event:')
this.logging.debug(event.value)
})
const interval = setInterval(() => {
ws.push(new JSONMessageEvent({ hello: 'world!' }))
}, 5000)
await this.request.make<Bus>(Bus)
.subscribe(WebSocketCloseEvent, () => {
clearInterval(interval)
})
}
public test() {
return new Validator<UserLogin>()
}
}