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
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>()
|
|
}
|
|
}
|