Skip to content
This repository was archived by the owner on Jan 4, 2022. It is now read-only.

Commit 063ebbd

Browse files
committed
fixed bug with tasks
1 parent f0b061b commit 063ebbd

File tree

3 files changed

+46
-39
lines changed

3 files changed

+46
-39
lines changed

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@code.gov/api-client",
3-
"version": "0.2.7",
3+
"version": "0.2.8",
44
"description": "Client for Interacting with Code.gov API",
55
"main": "dist/bundle.js",
66
"scripts": {

src/index.js

Lines changed: 44 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -269,58 +269,65 @@ class CodeGovAPIClient {
269269

270270

271271
tasks(params) {
272-
let { agencies, from, languages, skillLevels, size, timeRequired } = params || {}
272+
console.log("starting client tasks with", params)
273+
let { agencies, categories, from, languages, page, skillLevels, size, timeRequired } = params || {}
273274

274275
// clean and normalize
275276
agencies = trim(lower(agencies))
276-
from = Number(size || 0)
277+
categories = trim(lower(categories))
277278
languages = trim(lower(languages))
278279
size = Number(size || 10)
279280
skillLevels = trim(lower(skillLevels))
280281
timeRequired = trim(lower(timeRequired))
281282

282-
const cacheKey = JSON.stringify({ agencies, languages, size, skillLevels, timeRequired })
283-
284-
if (this.cache.hasOwnProperty(cacheKey)) {
285-
return Promise.resolve(this.cache[cacheKey])
283+
if (from) {
284+
from = Number(from)
285+
} else if (page) {
286+
from = (page-1) * size
286287
} else {
287-
return get(this.tasksUrl)
288-
.then(response => {
289-
const result = {
290-
tasks: []
291-
}
292-
const items = response.data.items
293-
const count = items.length
294-
for (let i = 0; i < count; i++) {
295-
const task = items[i]
296-
const effort = trim(lower(task.effort))
297-
const skill = trim(lower(task.skill))
298-
299-
if(some(agencies) && !includes(agencies, task.agency.name)) {
300-
return
301-
}
288+
from = this.from
289+
}
302290

303-
if(some(languages) && !overlaps(languages, task.languages)) {
304-
return
305-
}
291+
return this.getJSON(this.tasksUrl)
292+
.then(data => {
293+
const result = {
294+
tasks: []
295+
}
296+
const items = data.items
297+
const count = items.length
298+
for (let i = 0; i < count; i++) {
299+
const task = items[i]
300+
const effort = trim(lower(task.effort))
301+
const skill = trim(lower(task.skill))
302+
303+
if(some(agencies) && !includes(agencies, trim(lower(task.agency.acronym)))) {
304+
continue
305+
}
306306

307-
if(some(skillLevels) && !includes(skillLevels, skill)) {
308-
return
309-
}
307+
if(some(categories) && !includes(categories, trim(lower(task.type)))) {
308+
continue
309+
}
310310

311-
if(some(timeRequired) && !includes(timeRequired, effort)) {
312-
return
313-
}
311+
if(some(languages) && !overlaps(languages, trim(lower(task.languages)))) {
312+
continue
313+
}
314314

315-
result.tasks.push(task)
315+
if(some(skillLevels) && !includes(skillLevels, skill)) {
316+
continue
317+
}
316318

319+
if(some(timeRequired) && !includes(timeRequired, effort)) {
320+
continue
317321
}
318-
result.total = result.tasks.length
319-
result.tasks = result.tasks.slice(from, from + size)
320-
this.cache[cacheKey] = result
321-
return result
322-
})
323-
}
322+
323+
result.tasks.push(task)
324+
325+
}
326+
result.total = result.tasks.length
327+
console.log("slicing from ", from, "with size", size)
328+
result.tasks = result.tasks.slice(from, from + size)
329+
return result
330+
})
324331
}
325332
}
326333

0 commit comments

Comments
 (0)