Skip to content

Commit

Permalink
Merge pull request #22 from predicthq/ensure_all_params_valid
Browse files Browse the repository at this point in the history
add missing params
  • Loading branch information
hampsterx committed Sep 10, 2017
2 parents d1abe48 + 64b664e commit 58545f7
Show file tree
Hide file tree
Showing 7 changed files with 155 additions and 3 deletions.
4 changes: 2 additions & 2 deletions src/endpoints/v1/events.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ class Events extends BaseEndpoint {
super(client)

this.schema = EventSchema
this.arrayOptions = ['category', 'sort', 'top_events.sort', 'rank_level', 'label', 'country','place.scope','place.exact']
this.integerOptions = ['limit', 'offset', 'rank_level']
this.arrayOptions = ['category', 'sort', 'top_events.sort', 'rank_level', 'label', 'country','place.scope','place.exact', 'state']
this.integerOptions = ['limit', 'offset', 'rank_level', 'signal.significance']

this.accountId = accountId

Expand Down
57 changes: 56 additions & 1 deletion src/endpoints/v1/schemas/events.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,42 @@
"country": {
"type": "array"
},
"state": {
"items": {
"enum": [
"active",
"deleted"
]
},
"type": "array"
},
"signal.id": {
"type": "string"
},
"signal.analysis_from": {
"type": "string",
"pattern": "^([0-9]{4})-[0-9]{2}-[0-9]{2}$"
},
"signal.analysis_to": {
"type": "string",
"pattern": "^([0-9]{4})-[0-9]{2}-[0-9]{2}$"
},
"signal.analysis_tz": {
"type": "string"
},
"signal.significance": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"signal.metric": {
"type": "string",
"pattern": "^(demand|lead|span)$"
},
"signal.explain": {
"type": "string",
"pattern": "^([0-9]{4})-[0-9]{2}-[0-9]{2}$"
},
"start.tz": {
"type": "string"
},
Expand Down Expand Up @@ -70,7 +106,26 @@
"type": "string",
"pattern": "^([0-9]{4})-[0-9]{2}-[0-9]{2}$"
},
"active.tz": {
"updated.tz": {
"type": "string"
},
"updated.gt": {
"type": "string",
"pattern": "^([0-9]{4})-[0-9]{2}-[0-9]{2}$"
},
"updated.gte": {
"type": "string",
"pattern": "^([0-9]{4})-[0-9]{2}-[0-9]{2}$"
},
"updated.lt": {
"type": "string",
"pattern": "^([0-9]{4})-[0-9]{2}-[0-9]{2}$"
},
"updated.lte": {
"type": "string",
"pattern": "^([0-9]{4})-[0-9]{2}-[0-9]{2}$"
},
"active.tz": {
"type": "string"
},
"active.gt": {
Expand Down
4 changes: 4 additions & 0 deletions src/endpoints/v1/schemas/places.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@
"minimum": 1,
"maximum": 200
},
"location": {
"type": "string",
"pattern": "@([\\-\\+]?\\d+(\\.\\d+)?),([\\-\\+]?\\d+(\\.\\d+)?)"
},
"type": {
"items": {
"enum": [
Expand Down
25 changes: 25 additions & 0 deletions test/test_events_search.js
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,31 @@ describe('Events', () => {

}),

it('Search - Delta (updated and state filter)', (done) => {

let c = new Client({access_token: test_client_credentials_access_token})

c.events.search({
'updated.gte': '2017-05-01',
'updated.lte': '2017-05-02',
'label': ['performing-arts'],
'country': 'US',
'sort': ['start'],
'state': ['deleted']
})
.then((results)=> {

// Expect some results
expect(results.toArray().length).toEqual(10)

expect(results.toArray()[0]['id']).toEqual('O8aaM8kalk56')

done()

}).catch(done)

}),

it('Search - count only', (done) => {

let c = new Client({access_token: test_client_credentials_access_token})
Expand Down
23 changes: 23 additions & 0 deletions test/test_events_validation.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,17 @@ describe('Event.Validation', () => {
expect(validate({category: 'blah'}).valid).toNotExist()
})

it('State - Valid', () => {
expect(validate({state: 'deleted'}).valid).toExist()
expect(validate({state: 'active,deleted'}).valid).toExist()
expect(validate({state: ['active','deleted']}).valid).toExist()
})

it('State - Invalid', () => {
expect(validate({state: 'blah'}).valid).toNotExist()
expect(validate({state: ['blah']}).valid).toNotExist()
})

it('Limit - Valid', () => {
expect(validate({limit: 100}).valid).toExist()
expect(validate({limit: '100'}).valid).toExist()
Expand Down Expand Up @@ -88,6 +99,18 @@ describe('Event.Validation', () => {
expect(validate({'start.gt': '2016'}).valid).toNotExist()
})

it('Updated - Valid', () => {
expect(validate({'updated.tz': 'America/New_York'}).valid).toExist()
expect(validate({'updated.gt': '2016-01-01'}).valid).toExist()
expect(validate({'updated.gte': '2016-01-01'}).valid).toExist()
expect(validate({'updated.lt': '2016-01-01'}).valid).toExist()
expect(validate({'updated.lte': '2016-01-01'}).valid).toExist()
})

it('Updated - Invalid', () => {
expect(validate({'updated.gt': '2016'}).valid).toNotExist()
})

it('End - Valid', () => {
expect(validate({'end.tz': 'America/New_York'}).valid).toExist()
expect(validate({'end.gt': '2016-01-01'}).valid).toExist()
Expand Down
17 changes: 17 additions & 0 deletions test/test_places.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,21 @@ describe('Places', () => {

})

it('Search by Location', (done) => {

let c = new Client({ access_token : test_user_password_access_token})

c.places.search({location : '@40.66677,-73.88236'})
.then((results)=>{

expect(results.toArray().length).toEqual(10)

expect(results.toArray()[0].country).toEqual("United States")

done()

}).catch(done)

})

})
28 changes: 28 additions & 0 deletions test/test_places_validation.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/*
Event Validation Tests
*/

import _ from "lodash"
_.extend(global, require('./shared'))

import Client from '../src/client'

let c = new Client()

function validate(options){
return c.places.validate(options)
}

describe('Place.Validation', () => {

it('ID - Valid', () => {
expect(validate({id: '123'}).valid).toExist()
})

it('Location - Valid', () => {
expect(validate({location: '@40.66677,-73.88236'}).valid).toExist()
})


})

0 comments on commit 58545f7

Please sign in to comment.