1
1
import { Log } from './../log' ;
2
- var url = require ( 'url' ) ;
2
+ let url = require ( 'url' ) ;
3
3
import * as _ from 'lodash' ;
4
4
5
5
export class HttpApi {
@@ -9,22 +9,15 @@ export class HttpApi {
9
9
* @param {any } io
10
10
* @param {any } channel
11
11
* @param {any } express
12
- * @param {any } options object apiOriginAllow
12
+ * @param {object } options object
13
13
*/
14
14
constructor ( private io , private channel , private express , private options ) { }
15
15
16
16
/**
17
17
* Initialize the API.
18
18
*/
19
19
init ( ) : void {
20
- if ( this . options . allowCors ) {
21
- this . express . use ( ( req , res , next ) => {
22
- res . header ( 'Access-Control-Allow-Origin' , this . options . allowOrigin ) ;
23
- res . header ( 'Access-Control-Allow-Methods' , this . options . allowMethods ) ;
24
- res . header ( 'Access-Control-Allow-Headers' , this . options . allowHeaders ) ;
25
- next ( ) ;
26
- } ) ;
27
- }
20
+ this . corsMiddleware ( ) ;
28
21
29
22
this . express . get (
30
23
'/apps/:appId/status' ,
@@ -47,6 +40,20 @@ export class HttpApi {
47
40
) ;
48
41
}
49
42
43
+ /**
44
+ * Add CORS middleware if applicable.
45
+ */
46
+ corsMiddleware ( ) : void {
47
+ if ( this . options . allowCors ) {
48
+ this . express . use ( ( req , res , next ) => {
49
+ res . header ( 'Access-Control-Allow-Origin' , this . options . allowOrigin ) ;
50
+ res . header ( 'Access-Control-Allow-Methods' , this . options . allowMethods ) ;
51
+ res . header ( 'Access-Control-Allow-Headers' , this . options . allowHeaders ) ;
52
+ next ( ) ;
53
+ } ) ;
54
+ }
55
+ }
56
+
50
57
/**
51
58
* Get the status of the server.
52
59
*
@@ -68,9 +75,9 @@ export class HttpApi {
68
75
* @param {any } res
69
76
*/
70
77
getChannels ( req : any , res : any ) : void {
71
- var prefix = url . parse ( req . url , true ) . query . filter_by_prefix ;
72
- var rooms = this . io . sockets . adapter . rooms ;
73
- var channels = { } ;
78
+ let prefix = url . parse ( req . url , true ) . query . filter_by_prefix ;
79
+ let rooms = this . io . sockets . adapter . rooms ;
80
+ let channels = { } ;
74
81
75
82
Object . keys ( rooms ) . forEach ( function ( channelName ) {
76
83
if ( rooms [ channelName ] . sockets [ channelName ] ) {
@@ -97,11 +104,11 @@ export class HttpApi {
97
104
* @param {any } res
98
105
*/
99
106
getChannel ( req : any , res : any ) : void {
100
- var channelName = req . params . channelName ;
101
- var room = this . io . sockets . adapter . rooms [ channelName ] ;
102
- var subscriptionCount = room ? room . length : 0 ;
107
+ let channelName = req . params . channelName ;
108
+ let room = this . io . sockets . adapter . rooms [ channelName ] ;
109
+ let subscriptionCount = room ? room . length : 0 ;
103
110
104
- var result = {
111
+ let result = {
105
112
subscription_count : subscriptionCount ,
106
113
occupied : ! ! subscriptionCount
107
114
} ;
0 commit comments