Skip to content

Commit 190d98d

Browse files
committed
- simple refactoring BusinessLogic Service
- simple refactoring Cache Service
1 parent 7a3dbf8 commit 190d98d

File tree

9 files changed

+122
-114
lines changed

9 files changed

+122
-114
lines changed

src/bl/dispatch-event.js

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,28 @@ import Request from '../request'
33
import Async from '../request/async'
44
import Urls from '../urls'
55

6-
export function dispatchEvent(eventName, eventArgs) {
6+
export function dispatchEvent(eventName, eventArgs, asyncHandler) {
77
if (!eventName || !Utils.isString(eventName)) {
88
throw new Error('Event Name must be provided and must be not an empty STRING!')
99
}
1010

11-
eventArgs = (Utils.isObject(eventArgs) && !(eventArgs instanceof Async)) ? eventArgs : {}
12-
13-
let responder = Utils.extractResponder(arguments)
11+
if (eventArgs instanceof Async) {
12+
asyncHandler = eventArgs
13+
eventArgs = undefined
14+
}
1415

15-
if (responder) {
16-
responder = Utils.wrapAsync(responder)
16+
if (!Utils.isObject(eventArgs)) {
17+
eventArgs = {}
1718
}
1819

19-
eventArgs = eventArgs instanceof Async ? {} : eventArgs
20+
if (asyncHandler) {
21+
asyncHandler = Utils.wrapAsync(asyncHandler)
22+
}
2023

2124
return Request.post({
2225
url : Urls.blEvent(eventName),
2326
data : eventArgs,
24-
isAsync : !!responder,
25-
asyncHandler: responder
27+
isAsync : !!asyncHandler,
28+
asyncHandler: asyncHandler
2629
})
2730
}

src/bl/invoke-service-method.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
1-
import Utils from '../utils'
21
import Urls from '../urls'
32
import Request from '../request'
3+
import Async from '../request/async'
44

5-
export function invokeServiceMethod(serviceName, method, parameters /**, async */) {
6-
const responder = Utils.extractResponder(arguments)
5+
export function invokeServiceMethod(serviceName, method, parameters, asyncHandler) {
6+
if (parameters instanceof Async) {
7+
asyncHandler = parameters
8+
parameters = undefined
9+
}
710

811
return Request.post({
912
url : Urls.blServiceMethod(serviceName, method),
1013
data : parameters,
11-
isAsync : !!responder,
12-
asyncHandler: responder
14+
isAsync : !!asyncHandler,
15+
asyncHandler: asyncHandler
1316
})
1417
}

src/cache/cache-methods.js

Lines changed: 0 additions & 21 deletions
This file was deleted.

src/cache/contains.js

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
1-
import { cacheMethod } from './cache-methods'
1+
import Utils from '../utils'
2+
import Urls from '../urls'
3+
import Request from '../request'
24

35
export function contains(key, asyncHandler) {
4-
return cacheMethod('GET', key, true, asyncHandler)
6+
if (!key || !Utils.isString(key)) {
7+
throw new Error('Cache Key must be non empty String')
8+
}
9+
10+
if (asyncHandler) {
11+
asyncHandler = Utils.wrapAsync(asyncHandler)
12+
}
13+
14+
return Request.get({
15+
url : Urls.cacheItemCheck(key),
16+
isAsync : !!asyncHandler,
17+
asyncHandler: asyncHandler
18+
})
519
}

src/cache/expire-at.js

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,26 @@ import Utils from '../utils'
22
import Urls from '../urls'
33
import Request from '../request'
44

5-
export function expireAt(key, timestamp /**, async */) {
6-
if (Utils.isString(key) && (Utils.isNumber(timestamp) || Utils.isDate(timestamp)) && timestamp) {
7-
timestamp = (Utils.isDate(timestamp)) ? timestamp.getTime() : timestamp
8-
let responder = Utils.extractResponder(arguments), isAsync = false
9-
if (responder) {
10-
isAsync = true
11-
responder = Utils.wrapAsync(responder)
12-
}
5+
export function expireAt(key, timestamp, asyncHandler) {
6+
if (!key || !Utils.isString(key)) {
7+
throw new Error('Cache Key must be non empty String')
8+
}
9+
10+
if (!timestamp) {
11+
throw new Error('Cache Expiration must be timestamp or instance of Date')
12+
}
1313

14-
return Request.put({
15-
url : Urls.cacheItemExpireAt(key) + '?timestamp=' + timestamp,
16-
data : {},
17-
isAsync : isAsync,
18-
asyncHandler: responder
19-
})
20-
} else {
21-
throw new Error(
22-
'You can use only String as key while expire in Cache. ' +
23-
'Second attribute must be declared and must be a Number or Date type'
24-
)
14+
timestamp = Utils.isDate(timestamp) ? timestamp.getTime() : timestamp
15+
16+
if (asyncHandler) {
17+
asyncHandler = Utils.wrapAsync(asyncHandler)
2518
}
19+
20+
return Request.put({
21+
url : Urls.cacheItemExpireAt(key) + '?timestamp=' + timestamp,
22+
data : {},
23+
isAsync : !!asyncHandler,
24+
asyncHandler: asyncHandler
25+
})
26+
2627
}

src/cache/expire-in.js

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,24 @@ import Utils from '../utils'
22
import Urls from '../urls'
33
import Request from '../request'
44

5-
export function expireIn(key, seconds /**, async */) {
6-
if (Utils.isString(key) && (Utils.isNumber(seconds) || Utils.isDate(seconds)) && seconds) {
7-
seconds = (Utils.isDate(seconds)) ? seconds.getTime() : seconds
5+
export function expireIn(key, seconds, asyncHandler) {
6+
if (!key || !Utils.isString(key)) {
7+
throw new Error('Cache Key must be non empty String')
8+
}
89

9-
let responder = Utils.extractResponder(arguments)
10-
const isAsync = !!responder
10+
if (!seconds) {
11+
throw new Error('Cache Expiration must be number of seconds')
12+
}
1113

12-
if (responder) {
13-
responder = Utils.wrapAsync(responder)
14-
}
14+
if (asyncHandler) {
15+
asyncHandler = Utils.wrapAsync(asyncHandler)
16+
}
1517

16-
return Request.put({
17-
url : Urls.cacheItemExpireIn(key) + '?timeout=' + seconds,
18-
data : {},
19-
isAsync : isAsync,
20-
asyncHandler: responder
21-
})
18+
return Request.put({
19+
url : Urls.cacheItemExpireIn(key) + '?timeout=' + seconds,
20+
data : {},
21+
isAsync : !!asyncHandler,
22+
asyncHandler: asyncHandler
23+
})
2224

23-
} else {
24-
throw new Error('The "key" argument must be String. The "seconds" argument can be either Number or Date')
25-
}
2625
}

src/cache/get.js

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,37 +3,38 @@ import Urls from '../urls'
33
import Request from '../request'
44
import { Parsers } from './parsers'
55

6-
export function get(key /**, async */) {
7-
if (!Utils.isString(key)) {
8-
throw new Error('The "key" argument must be String')
9-
}
10-
11-
function parseResult(result) {
12-
const className = result && result.___class
6+
function parseResult(result) {
7+
const className = result && result.___class
138

14-
if (className) {
15-
const clazz = Parsers.get(className) // || root[className]
9+
if (className) {
10+
const Class = Parsers.get(className)
1611

17-
if (clazz) {
18-
result = new clazz(result)
19-
}
12+
if (Class) {
13+
result = new Class(result)
2014
}
21-
22-
return result
2315
}
2416

25-
let responder = Utils.extractResponder(arguments), isAsync = false
17+
return result
18+
}
19+
20+
export function get(key, asyncHandler) {
21+
if (!key || !Utils.isString(key)) {
22+
throw new Error('Cache Key must be non empty String')
23+
}
2624

27-
if (responder) {
28-
isAsync = true
29-
responder = Utils.wrapAsync(responder, parseResult, this)
25+
if (asyncHandler) {
26+
asyncHandler = Utils.wrapAsync(asyncHandler, parseResult)
3027
}
3128

3229
const result = Request.get({
3330
url : Urls.cacheItem(key),
34-
isAsync : isAsync,
35-
asyncHandler: responder
31+
isAsync : !!asyncHandler,
32+
asyncHandler: asyncHandler
3633
})
3734

38-
return isAsync ? result : parseResult(result)
35+
if (asyncHandler) {
36+
return result
37+
}
38+
39+
return parseResult(result)
3940
}

src/cache/put.js

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,32 @@ import Async from '../request/async'
44
import Request from '../request'
55

66
export function put(key, value, timeToLive, asyncHandler) {
7-
if (!Utils.isString(key)) {
8-
throw new Error('You can use only String as key to put into Cache')
7+
if (!key || !Utils.isString(key)) {
8+
throw new Error('Cache Key must be non empty String')
99
}
1010

11-
if (!(timeToLive instanceof Async)) {
12-
if (typeof timeToLive === 'object' && !arguments[3]) {
13-
asyncHandler = timeToLive
14-
timeToLive = null
15-
} else if (typeof timeToLive !== ('number' || 'string') && timeToLive != null) {
16-
throw new Error('You can use only String as timeToLive attribute to put into Cache')
17-
}
18-
} else {
11+
if (timeToLive instanceof Async) {
1912
asyncHandler = timeToLive
20-
timeToLive = null
13+
timeToLive = undefined
14+
}
15+
16+
if (timeToLive && !Utils.isNumber(key)) {
17+
throw new Error('Cache timeToLive must be Number')
2118
}
2219

2320
if (Utils.isObject(value) && value.constructor !== Object) {
2421
value.___class = value.___class || Utils.getClassName(value)
2522
}
2623

27-
let responder = Utils.extractResponder([asyncHandler])
28-
const isAsync = !!responder
29-
30-
if (responder) {
31-
responder = Utils.wrapAsync(responder)
24+
if (asyncHandler) {
25+
asyncHandler = Utils.wrapAsync(asyncHandler)
3226
}
3327

3428
return Request.put({
3529
url : Urls.cacheItem(key) + ((timeToLive) ? '?timeout=' + timeToLive : ''),
3630
headers : { 'Content-Type': 'application/json' },
3731
data : JSON.stringify(value),
38-
isAsync : isAsync,
39-
asyncHandler: responder
32+
isAsync : !!asyncHandler,
33+
asyncHandler: asyncHandler
4034
})
4135
}

src/cache/remove.js

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
1-
import { cacheMethod } from './cache-methods'
1+
import Utils from '../utils'
2+
import Urls from '../urls'
3+
import Request from '../request'
24

35
export function remove(key, asyncHandler) {
4-
return cacheMethod('DELETE', key, false, asyncHandler)
6+
if (!key || !Utils.isString(key)) {
7+
throw new Error('Cache Key must be non empty String')
8+
}
9+
10+
if (asyncHandler) {
11+
asyncHandler = Utils.wrapAsync(asyncHandler)
12+
}
13+
14+
return Request.delete({
15+
url : Urls.cacheItem(key),
16+
isAsync : !!asyncHandler,
17+
asyncHandler: asyncHandler
18+
})
519
}

0 commit comments

Comments
 (0)