Skip to content

Commit

Permalink
feat(api): implement event::changes
Browse files Browse the repository at this point in the history
  • Loading branch information
guillaumearm committed Nov 3, 2018
1 parent 5f24eab commit cece9c3
Show file tree
Hide file tree
Showing 12 changed files with 1,750 additions and 12 deletions.
3 changes: 3 additions & 0 deletions src/api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ export const createJeedomApi = (jeedomRpc: RpcInterface): JeedomApi => ({
byKey: (params) => jeedomRpc('config::byKey', params),
save: (params) => jeedomRpc('config::save', params),
},
event: {
changes: (params) => jeedomRpc('event::changes', params),
},
})

export * from './types/index'
15 changes: 15 additions & 0 deletions src/api/types/event.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
export type EventChangesParams = {
datetime?: number
}

export type EventChangesResponse = {
datetime: number
name: string
option: any
}

export type EventApi = {
event: {
changes: (params: EventChangesParams) => Promise<EventChangesResponse>
}
}
3 changes: 2 additions & 1 deletion src/api/types/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { EventApi } from './event'
import { MiscApi } from './misc'
import { ConfigApi } from './config'

export type JeedomApi = MiscApi & ConfigApi
export type JeedomApi = MiscApi & ConfigApi & EventApi
2 changes: 1 addition & 1 deletion src/rpc/helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export type JsonRpcResponse<T = any> = {
error?: { message: string; code: number }
}

export type Params = Record<string, string | undefined>
export type Params = Record<string, string | number | null | undefined>

export type RpcInterface = (method: string, params?: Params, id?: Nullable<number>) => Promise<any>

Expand Down
2 changes: 1 addition & 1 deletion tests/__nock-fixtures__/jeedom-config::byKey.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
},
"rawHeaders": [
"Date",
"Sat, 03 Nov 2018 17:56:38 GMT",
"Sat, 03 Nov 2018 20:43:19 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand Down
6 changes: 3 additions & 3 deletions tests/__nock-fixtures__/jeedom-config::save.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
},
"rawHeaders": [
"Date",
"Sat, 03 Nov 2018 17:56:38 GMT",
"Sat, 03 Nov 2018 20:43:19 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand Down Expand Up @@ -57,7 +57,7 @@
},
"rawHeaders": [
"Date",
"Sat, 03 Nov 2018 17:56:38 GMT",
"Sat, 03 Nov 2018 20:43:19 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand Down Expand Up @@ -93,7 +93,7 @@
},
"rawHeaders": [
"Date",
"Sat, 03 Nov 2018 17:56:38 GMT",
"Sat, 03 Nov 2018 20:43:19 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand Down
6 changes: 3 additions & 3 deletions tests/__nock-fixtures__/jeedom-datetime.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,17 @@
"response": {
"jsonrpc": "2.0",
"id": null,
"result": 1541267798.788
"result": 1541277799.1366
},
"rawHeaders": [
"Date",
"Sat, 03 Nov 2018 17:56:38 GMT",
"Sat, 03 Nov 2018 20:43:19 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
"*",
"Content-Length",
"51",
"52",
"Connection",
"close",
"Content-Type",
Expand Down
37 changes: 37 additions & 0 deletions tests/__nock-fixtures__/jeedom-event::changes.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
[
{
"scope": "http://192.168.1.60:80",
"method": "POST",
"path": "/core/api/jeeApi.php",
"body": {
"jsonrpc": "2.0",
"id": null,
"method": "event::changes",
"params": {
"apikey": "42"
}
},
"status": 200,
"response": [
"1f8b0800000000000003ed5d5b6fdb4616fe2b845ef645e6cefda23ca5695360910205b6d87d888342b6e8560b5b7275295214f9ef3b878e634524cf68c8e188b403b4464231e3a38f8733e7f29d73fe9efc6fbb5e6deeaf27b309cbc9643a592e26b3d5fef6763ad914dbfded6e32fb7bb298ef8addf2ae98cca8149469adadcea521fae9a6f7357749ae72c1ad984e5673b83c2996578bd9ec6ebd5aeed61bf7bbd6f7bbe57ae53ef8fb72f2d37a515c4e669793ff6e963bf7a7e9e5e4f5c2adbe2d7edcacf7f70f9fd1cbcbcb7f12f8a10eeff8f9f7bfb6cb3ff69fef91b9fb8f4959dee1849a9797c9c72c2334138bf2f29ff3db62bf711fbca753ad3fb82bdfbb1b7f5e2f57bb5ffe7afc65f9c78f1fcbbbafef16ff2a8ac5faaebcfe6e9e5dafefeee6ab4591adfe517c74e26eb3fbf9f6f1f795203cfc4e7e41e90523d4648cceb8994927f6a7c9a7692d583ab7c698c860953f642bb0ae337a730c169b729a0e2ddd8c962039b346f581966d462ba739a73550894ccd8fa012534a5422a8ec8c10042a9a0bc5d990de425354de422a583ab4288216cb8d3ad8b2fe78b7fe6d793d9bedefe1de03b8fe7efcec57d83227964e3e35afa8459b2519b6a411b2c5920459d21243bf2ce9c0ae5dce5d7f584a4ae93e708f700fb7bfde5fef57eeef8be5f6fe76fed7afc7d7cbbf7f0f8bb983c63d890b4a2e98cd0899c17fc2dd71bdbebd2dae775fdd432f087f7c66181896311122b93a909c8208af28859faf5e6f36eb6db1c96e9d2edd80726e5f49f9c67cf703797bf18692d71742be7d7df19a7ff7f642bd79abd41bcdad92fad52b2aa9b1821b6b5f596eb337977b426ec4aec816fbecc7627dbb2c36863142b29fd6cbed767efd76335f5d1735809d599cea732a9fc1e7e724bb3e27ce79c873d29d342caae44204496eba4acea2492e65d05b6dbb4a4ea349ae5480e08a74dc8e783cc1b50e119c76159c4413dc1d542d0e15ddb8a4cc35b1b14d8f871f1c35d384a81a1e8664f4ba62d19a2933e92c0f89581e2a5794d05ec062e1605d65f38af9cfed946a990e2dc45d1226672aa2fdafbe18b506c58a920a56f46b986832784c333cd2496a64446ff2091f863b48420f06208ad8f90e20464cc4d84409102f7f78de36350e80784e15e52ffa0d8343a6111f913316131ff14581440bb7fa6c10091422ddcf1efd5947c6a042183e2a779e823cdd56e4877e85b3ad2a766279adc113fa2c8ff2db88e53d0ea9cdee5df16771eb6e59ad57459391e7be85222a7694d7f722c0465a178a63193f0ac55d4e1c2a97e0015f9137350ff7fd0f1f77e5c785dd2cc1c7fef0fedfbb39c89cfdf4f9fae3e7eb0fef7f29eeee1fef9eeff69be243b96455976c4e083d4541102307a0e5c28628c881cb4c2aea411a9583da996433aa4f520e441134b37d2882e744ad5304708a8e1581dcc162dbce4af09f62b5c39ebb8cf0dcad1c902b602a7e13b8028224730550b4b4b37575442ff3e99c19d5498ca44b1c44ceda8d6dccf107ad42d3256381c7386b65502912564d91f084ef1b8696719e41cc7d7e8c9e01e67bdb5c291671f71ea5dd6b9b01522c375c0e2a23c979e57593a932dd76c6180216f8e142bfe8b78d217eb812f0b6bd702f93215ea6725acffa892bb77bdb7426cdd1dba6a7265d109e21417805190bd10bafa44dc6e22abb9135963713e982f0285ace6ee23ce2ded47d23a7b6b291b3846021669302b389f712920fdfa88e5c63920c20c46e02804ccc776f8c271d828f264e81c83022f2e7d21f8e10dd001fc362e3c3fc4e6e75e71e283cccdad89bf5682993285434d783d9aacfb515712439a8c183d3833af899a81cfc3ca136211e9ce63937d153cdd49f20199232211e9cc347da00fe26d7fc29c9011a51c9733c5c44f260da09e44f75b87b1a521d4e6445a373aaa9ff2866a646f96576534975000458d2ebfbcfd98cfb62b500eee7f6c3fb37bfcff73737f3df8accfde9ee6a5364cbd59fcbc7b4474dea2b73772de7ab5de71c18aa1d3277700710eaf821bd37240706b2f0193f814457de737282d47d0345a9ec232fe67129ab076f352556a71c41c9b09f6ff7cb460da0a76a00e265027ef1c385e204bbce8b5f3ac30ec7c752f184cff6ba58cd37cb75ed6bf2f8e1c3bbc220e1bbdd3da8f97295dd6fd6bf0116eeeaed7cbb7b37dfafae7f6f78039ab5dd5aaa3a4bb3ddadefbb88a1202cf8d24d38246baa2176430695f3d2952cf3943291ce8643823786823af512851f8f3a09c42330654e2736f9a3933acd49559d54ba14aa405c02531670f5a24ee1f4dc739d691e802c91bd1016c2e9b94305c89088c1d227faa96cf1be9d6d4bc220e290f832a77b0eee1fb227d781e7b6e23c94d710f741cc04f1bb0fa2d1af3432d7464454fb83f493275650e758d2eca61a556122dd912c10b3d700efd4f4535cd48a2467af6a527554a6cb3e09c4dc03b4147fe1a4141420ed001211d5698ce9398199c0363fe4c89d1087392810a7d5185d3317d9cc2899c9533652dbb8913a616d4cf7ef29e6121c33002eb23ada47ddcdb775cf2e2cf4f26e7fb75cadb74f313a240e274e79fc0869cbf25c0a1950ace0fee1419cf6b4401cb1178c8230529e54cd2a1b4f520bac9798c9c0eeac17754ce9d4539b8ef52291a3d481a56c2fad675a925e8e538325e945a6f3dd50b04c4e79cc93b4bba76b65d5d315361d5acda4054548ce098d1d661a67d65910ac518f222cd78771ee80c869e9b704c771419ea676008af09c7036a8f8a0a83a232ad1060a503527a9002caed581f1d8b96d50b9a4392cd9e8dc3608961484c66c1b542ec9035cec945d83ca6786092e8304ffd634a89fa641dec7a4795073a7744d83bc921fb6531954d3209fe49284619eae69905772aa431a3525ec1ae4955cf0a07e47e9da0679259787d5979ddb06c1924ad1971cabf29b1b5ae980ba706ad4c1e61258184e253cfe5354e474528c222a673a767ea71d27ee2cc13600ac391a09f0387fa09f4440abe0f655c5f686e0b649e492fbd03239613a76d54eb73a944a0863ca12ba9998476e722565443ada2877570420ea8e1f19539bc60810d2fa4851687d34a8b78da9cadbc6d34506901e3fca09ad29e9274bd9aa0562a5f6125a20a6aabe04b09a43ab8a42432419c4f5edbf2112c8dcd4f3a694d8c634555f50f3a312585419140971a0fb6e7ee45304ad452f09c7e7d6fcc8ffdcb58dd9cea7abe9bbd075d9289a88d7e1434b3bd3b715dbfaab9c819f6d8d260ba8b3295574baded84c26cca6b439e5c3f250744dd290269a85026835730d142339a1d15b0afa3a7a396d1a486b56070f431285000f8f193c314f3b240acf40b8c37e78948c99b91c1d93cb0790709b11895d90d6addd59e58c9d529eee8445fae728e6a4a6bd748419219108b0421c380e3d06faa98b1d23db03e931a03834472621ee8d3a706f9c3d21aa94caf262b3b70b129d90342fef3939900fdf43db5eda4b69f491b3ea69042f87ad322d1d2c9d4ba17fdc2f6f6fe7fbbba2b73ae81279445f641ebf45e5888a60011e64e779183512bbfeac439cedaa6ed4084d1868436a2714cc1a21fdbcb4ed7cec821ea3053e76aace5d8016e2638b92f93e20ea3bc8db447d5792b83781f5d26ee0b952df0560defcfca580998083b2976db55f2915e99c77891c5412ece55ec8e4e3b497112eb92a6727c41c90d5ad75f9b90e76642e6e09d1201a970f121c9d4b1533bb38c6b82b32271800b2a69f39c1b2d56e74dea9ca3eb48c3be8fa699a328e0e9c800f12c5973637820fca1028aa73025842a29144a2f80a824131c3d4630e0651b4f447b11cfef892f7710750732f07a5784e843970efbb17d8c092d2aa164b36a64161494ddad4ec3416d8c0925606cd1e4e5861431162380c2e20f65b89cd104a6c7ccf89b190c794b0c2c62738e70115e9492b6c7c928b90b96e492b6c7c924b15521b94b2c2c627b9d221db51ca0a1b9fe4da9816a74a63858d028a734c82c5e80c7d8a16d828917313bd3c654ce393012024c8e7001244c79e0136a6f1c97e800c1b5687f4ea28997483647c68691872f5a2e3580e202432a38060197db6c5c8366c2432a329cc461988029d27524cb171ee0a3ad6cb98fd5947a840584d931e1a7fa0daec849974ed4e285aa7a3552e850a1a5cde736906454a33405a13bd93cdf32ccda068b1812ed39501c1a824f5599e67af443fb3179e7f7d965f19a4ea659e543b0ed175a5b2113844245589ba072d30e0628e4a1ce3f98b187086e444c41c9a1c21b556334a92f364da8431f84dd921a5971afed168133214581999133e2cc696ac32b64c426542ac3953b64aedc5f46dcdd83a26cfea2925e96c5f14add206eaa7596aab636f5ee1934067169d2eb0c39063cfc0d0db982fe2d86696023ed8b107336f636ad3c866967ae0b150e96807d5849414957d9c261a88e0c0c22a8a2cb4da8d3e8d7bb47c1b142a673f91831ecec133277995d45f5e448aafa87fe6e4e33d27175fc1f760aa97c3a8dd1cca8a7b0bb08c630e65093ea232223746f7c28d1cc9c8260008c9e138806c7c2efb984636f90072e70a5183724aced9a58ea2f57c0eacaf98ed27841afb1dfb5aca1bb437bb6f60446ceaf9331afbead700c5486cfaf0982a5ebdf858419eccbddec7be3ebc014ddaae72c25877694e68448488a109380c3167ad77df6355252cedcce0741e83683683358130991e54d0d5d4143626ab8ea158d134a0e5fe1fcc981c528d929525e609e3643eb42ceda515c8f84619fab0822e92d1c31ce36d7947b1727c4da01c9f06f4caefbd1c9f3697e397d29ae89ddf9e77393ec526d169383d181954bea2d25457a76ba94bb10a73004b8b9847bc3851fd6adaf39c2b53e8c32766004d7c7132f0438a5537de21c2c320a61cbd55dc4863ca0cabe1d48ce7d4c60c104630a6eb72152c1d5acde15440cbd9136d4a259b0a3acb2599a22d966c2ae82c97e4aa4de94d534167b9a42241b55f090b3a59731d5229b90ee9cefeada0b3b7824edf73323a20b995b4a2d327b93541c5ce092b3a3d92736243e677a5ace8f449ce6888b6a4ace8f449ce59c87e94b2a2d327f9e1b4b7ee159d9a2988960fa8a3df9c1cdb1e404b52a9d8b80c1b18a519cc708e3e1ebe93ad56c52b2d5acd2c1ccd6186cd70c29ea476824d32a490c21840ca7039a880fafcaaaa573a5540dd831694110554e427a92661cdd524a5c086f732e4e5f9579330ac3e02a0554143677b2f29f328826231db123ee39232ff731f50e2a33a8700ac9664930870ac04c9098bde037c44635118561453c223622ad3d8c6a278e1313cf696d5ad21450dfb4ca6337951b0a089b1ed854b3dca9a1886d5c4005ace2c1a50b31396d1e389a06ccad245be31b024b4c534bda42f5ba554f4312f424c294d97524168fa5a4299e390caf858468edd29e6d04a07169251915d07cac82a33a2bc88d434b01306cab0b08132e5f7d0b69796cded06ca1c25d12e61a08c1cc3401986d1d1b5848132d1631563e2d7328c5faba5c915e7831ad9686b6284c9286c0e2d2446081d0587655d56fbaca76bb3ce6602d9a9151049552f3b5ccb5e43c53154cc4c753adb12e3462a080c45af9ae992d8a8782d65bd753abf05e346429f381e9da3dce13d245971cce826ce124f35aac6a1856d5aee20176c484c52863049415a1d7ddb78de4c528632493578f9ba97bd658cb38a184a052c3be4a90175c833156b08ca1fd840d02a8fad01b509595406859494fe74c71632c708d0d26a406953776a1d5b8feed4e2761860e9dcda7e2612cb56689d79a611c3661a69533298bf4da129a1e22883d9d05c3333a0701bcd44d5e355a91c5e075673435d6d582e946dc3366e2430c392daca164b36129861497b10148c4060764b4a2a83a88e0909cceea161604876d0a1e21b81f97c0466df730a19319292beec935b8651fb13d2977d92abb0214009e9cb3ec97508633c257bd927b8e121ca9292bdec93dc6d1931d9cb46e45af288d48d0e558ae7c945706c3e46898f8e496de950a638487c9cb74d7b6a3630c6a69c1c65bf3bb4b4b4834ad67059b1f365aaeeb83858d639457c485dbb48b638666c9029a3a9c82d1c1b33e2bc975c13dd0fa1b34590f02abba97b111db0e9d0428284563983b135ff5dd5f0df154ad7e027f0df3fdf73325d03be83893e38a50327be428576a80c9513cf51beaf0596798855de3b279e239c789056f1d841dce7c989f73ff701650e4c5de680f25499030f56da6d3f6440d453773cd7a40e583a63863e04c33f7cfaf47f0d9bd54ddefb0000"
],
"rawHeaders": [
"Date",
"Sat, 03 Nov 2018 20:43:19 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
"*",
"Vary",
"Accept-Encoding",
"Content-Encoding",
"gzip",
"Content-Length",
"4516",
"Connection",
"close",
"Content-Type",
"text/html; charset=UTF-8"
]
}
]
2 changes: 1 addition & 1 deletion tests/__nock-fixtures__/jeedom-ping.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
},
"rawHeaders": [
"Date",
"Sat, 03 Nov 2018 17:56:38 GMT",
"Sat, 03 Nov 2018 20:43:19 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand Down
2 changes: 1 addition & 1 deletion tests/__nock-fixtures__/jeedom-version.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
},
"rawHeaders": [
"Date",
"Sat, 03 Nov 2018 17:56:38 GMT",
"Sat, 03 Nov 2018 20:43:19 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand Down
Loading

0 comments on commit cece9c3

Please sign in to comment.