From c75c18f06460d4da8a105f41de3cedb73c9ad9b2 Mon Sep 17 00:00:00 2001 From: Hendrik Bulens Date: Fri, 26 Apr 2024 13:09:31 +0200 Subject: [PATCH] v0.1.1 (#4) * Remove console.log --- package.json | 2 +- samples/pingpong/.gitignore | 175 +++++++++++++++++++++++++++ samples/pingpong/README.md | 34 ++++++ samples/pingpong/assets/pingpong.gif | Bin 0 -> 106563 bytes samples/pingpong/bun.lockb | Bin 0 -> 7066 bytes samples/pingpong/package.json | 19 +++ samples/pingpong/play.ts | 84 +++++++++++++ samples/pingpong/stage.ts | 68 +++++++++++ samples/pingpong/tsconfig.json | 27 +++++ src/lib/endpoints/import.ts | 2 - 10 files changed, 408 insertions(+), 3 deletions(-) create mode 100644 samples/pingpong/.gitignore create mode 100644 samples/pingpong/README.md create mode 100644 samples/pingpong/assets/pingpong.gif create mode 100644 samples/pingpong/bun.lockb create mode 100644 samples/pingpong/package.json create mode 100644 samples/pingpong/play.ts create mode 100644 samples/pingpong/stage.ts create mode 100644 samples/pingpong/tsconfig.json diff --git a/package.json b/package.json index eb0ec19..a220d06 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "dimescheduler", "description": "The Dime.Scheduler SDK", - "version": "0.1.0", + "version": "0.1.1", "main": "./dist/index.ts", "types": "./dist/index.d.ts", "module": "./dist/esm/index.js", diff --git a/samples/pingpong/.gitignore b/samples/pingpong/.gitignore new file mode 100644 index 0000000..9b1ee42 --- /dev/null +++ b/samples/pingpong/.gitignore @@ -0,0 +1,175 @@ +# Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore + +# Logs + +logs +_.log +npm-debug.log_ +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Caches + +.cache + +# Diagnostic reports (https://nodejs.org/api/report.html) + +report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json + +# Runtime data + +pids +_.pid +_.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover + +lib-cov + +# Coverage directory used by tools like istanbul + +coverage +*.lcov + +# nyc test coverage + +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) + +.grunt + +# Bower dependency directory (https://bower.io/) + +bower_components + +# node-waf configuration + +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) + +build/Release + +# Dependency directories + +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) + +web_modules/ + +# TypeScript cache + +*.tsbuildinfo + +# Optional npm cache directory + +.npm + +# Optional eslint cache + +.eslintcache + +# Optional stylelint cache + +.stylelintcache + +# Microbundle cache + +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history + +.node_repl_history + +# Output of 'npm pack' + +*.tgz + +# Yarn Integrity file + +.yarn-integrity + +# dotenv environment variable files + +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) + +.parcel-cache + +# Next.js build output + +.next +out + +# Nuxt.js build / generate output + +.nuxt +dist + +# Gatsby files + +# Comment in the public line in if your project uses Gatsby and not Next.js + +# https://nextjs.org/blog/next-9-1#public-directory-support + +# public + +# vuepress build output + +.vuepress/dist + +# vuepress v2.x temp and cache directory + +.temp + +# Docusaurus cache and generated files + +.docusaurus + +# Serverless directories + +.serverless/ + +# FuseBox cache + +.fusebox/ + +# DynamoDB Local files + +.dynamodb/ + +# TernJS port file + +.tern-port + +# Stores VSCode versions used for testing VSCode extensions + +.vscode-test + +# yarn v2 + +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# IntelliJ based IDEs +.idea + +# Finder (MacOS) folder config +.DS_Store diff --git a/samples/pingpong/README.md b/samples/pingpong/README.md new file mode 100644 index 0000000..fc693e8 --- /dev/null +++ b/samples/pingpong/README.md @@ -0,0 +1,34 @@ +# Dime.Scheduler SDK for JavaScript sample: Ping Pong + +## Getting started + +Install the dependencies + +```cmd +bun install +``` + +Create an `.env` file with the Mapbox and Dime.Scheduler API keys: + +``` +DS_API_KEY= +``` + +There are two commands that you can run: `stage` and `play`. + +The `stage` command is create the playing field. It requires three sets of information: the start date (parameter 's'), the end date (parameter 'e'), and a list of resources to create appointments for: + +``` +bun stage -s '2022-04-03' -e '2022-04-09' -r 'ARNOUD' -r 'ASSIA' -r 'ELSEMIEK' -r 'HESSEL' +``` + +The `play` command accepts the same parameters: + +``` +bun play -s '2022-04-03' -e '2022-04-09' -r 'ARNOUD' -r 'ASSIA' -r 'ELSEMIEK' -r 'HESSEL' +``` + +## Application in action + +![](./assets/pingpong.gif) + diff --git a/samples/pingpong/assets/pingpong.gif b/samples/pingpong/assets/pingpong.gif new file mode 100644 index 0000000000000000000000000000000000000000..d517d6f635d15f8e90d0d67e24fa3c525da58be4 GIT binary patch literal 106563 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

IaJ`7~`gm;W%5byW>hXud;LZHyus0G%uGXFD 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

PjCLg2%IR*{I>$6zqnZ22 z1)+b=FaO~%A5r>5ls*xqPekbxQTp_sDt&?zrB6RU`|iv7>1p$qCXXn6`sa|!|G(c# uWFn&Ui70&{N}q_*C!+L;z7HNH9)rwVWMQpVywqBuUHal_Uy9Mm+AN|AQx6I7W`Tfq! znVB=2qr00hp3(}V6e=O9O5jDstE}PSE7h{a(F!HWk5+5rq&j|rx3w8T5JR(9Q7QjE zAG;}lZ)>O={n#ruYJ2|!LlP4Px_mC7inN zPY;67E1|T5QktYtQ&8{5A&BnKo(rWllyQnUk}r=UCPLd5+O9Ax8>CMqt7MB6x)uiS z2qnS+hQ=*4H?~WdG9St}pnnjTApQj{3ll9Fpr-_i?LZQfgn1yc^rT z-cO42`G(bf2b$-G<@w&eXydQ4cM6?w+H&xbQ17%yDfeQ|X4*Fm%>ODUId{=Figm(> zwVnrq{JX0IPuvaL`dRKE{ZOwAG76^oe+gPOBtzgC!_4zlI5B=1;Kws~^bWs=YKMaL zj)9gBgGZYLzwZ#t(zAm>j{rO@*DDFOBLjR8;87dR-@S`07@r5A;ebb2-!5X28pdA& zUcZ4M(>VjbWFHi{p zJe;*x5{&nP^XkXgM{Cek!FUDW(f&c$zk;s>JgmDOt(yfrD6Vuxu>B^+K8i~acZmL7 z0fP?4i(t`4gMDP%1s+s(MKC@U@PP~-t$$bX$Oh6!58}e>j!M)<{(z~`b3%T_>x)X% zhL}!EMXM>eNw*3y0jo}=;SX>l?5H| zGq`DY?|AXeDDvv(gG;uTf0f(vc-GFe?bbiBc+p6J4Zr^M%$d9L2bX@r z11{ZL&KD(ozp?Um>&ep-TxwXn>~p}C4;!ic?a*1@iJyWpE2zFC#2oO-aQA2}lZ z;52^Gj3j3Ri?lb=s$KJOz zvp1Ky9+*~@^UnMo;iZwBC~X^O{S}g|3wyd$i@!;iOr0Mc&E7MJ!(U z1~UoQ|IQIfDnG>4dC%k%C!C%={&v(y77LGjGC|=U5i<3o@;>f$g89o5dD1;zNzP3J zEceeZ{PpQ-tN8Q>`*s&z{_*o3zyeJArQu3vmHD4{m+scr6W*U2yL zFTK#1`sKjgp-FvFAj9Vv$3?`=4UVcfHO2k?v8&J9)SPy>HRfi%E0NylyJ~TwVosV{ z|F))}C%>Pmyk=G@X}#?zcW}^3c9j*?MN$_7nq#XCDfKK~99L;x7YB3OiaTZBP{9v2 z_#ZRB^+dVy@r7f}0mC}7+~(Ym;g@EMtESgx%t?;fn$zd@ zc-}x3FN()lxCXg>*vTuKvWL_SSako^oh!5M{nU_I_`T*6?KN>*Xn3}}m2K;xCt>;i zvv$nh<(64?a$cU5{qmLX1sPJf&Ns>)v3Sw90~W518WGcP(ALI?5YjgFx#DT@HQQ-d z*G#d9tMhET$`!B4*xT!^UXc;vP~FTb$Ac@T*?J0X*M@t1R#~r#c*2Q5<*6$n;u6GQN^=UpHaAs7);{@H_;k(P+8mDcXa@Iq5WJS*0WQ+O2 z%w^@-ZY>R8ggQmvU0T56MfVUE?vbOC=^GXj1u>)edyZjrbTHbo4vhB^j|AYKP@uDnzHiaDD7qg}TtMG>=uX4GUD0PSjQ5a_oj zj7N`iQD&we0XX}HvtDMLNN<4%vEe)%&VSK8;^6`@p#(MY3v%?S?Ezl;B10Y_I1B-gjMcSVvK$7Wfu?%S)Rc9r{!Yn-%u4 zeuc#E3@6E^bv!c$GbW=8XAbtF=+Cwyp-a|~luWD8=z{605VFWJbzGcOB`39VNZL}e zSW+IZB(Y;po>|mC8L$3OvjHS zbyB%hC+&c-y(*Ble+9f^_y@cl@X*Hqz;uZaZ~_n{TCG&76Zu+FuF%4eD3mVecQPiE z4)B@keEJ+9O7I#i7Afb0b4Y0%y_IQ~b}+mbO2GM|!AHlz$FGyQF^2^s*r_(XKI6Htv{|`flAY>0UI@<*%9R^J6zo1~qRcblOR1>KV z*21I%Y>5=#7}q+PI?Dv0kR?77DQWM=tK)qsZG { + memo.push(val); + return memo; +} + +program + .requiredOption('-s, --start ', 'Start date') + .requiredOption('-e, --end ', 'End date') + .requiredOption('-r, --resources ', 'Resources', collect, []); + +program.parse(process.argv); + +const options = program.opts(); + +const createBall = async (client: DimeSchedulerClient, startDate: string) => { + const endOfDay = new Date(startDate); + endOfDay.setDate(endOfDay.getDate() + 1); + + const appointment = new Appointment(); + appointment.resourceNo = options.resources[1]; + appointment.start = startDate; + appointment.end = endOfDay.toISOString(); + appointment.sourceApp = "PINGPONG"; + appointment.sourceType = "PINGPONG"; + appointment.jobNo = "PINGPONG"; + appointment.taskNo = "PINGPONG"; + appointment.category = "PINGPONG"; + appointment.appointmentGuid = "dbc77ca8-f7b8-4bc7-9877-d63d57a81210"; + + await client.import(appointment); +} + +const client = new DimeSchedulerClient(Bun.env.DS_API_KEY as string, Environment.Test); + +const play = async () => { + let start = new Date(options.start); + start.setDate(start.getDate() + 1); + + let end = new Date(options.end); + end.setDate(end.getDate() - 1); + + const dates = getDateRange(start, end); + for (const date of dates) { + await createBall(client, date.toISOString().split('T')[0]); + await Bun.sleep(500); + } +} + +const getDateRange = (startDate: Date, endDate: Date): Date[] => { + const dates = []; + let currentDate = new Date(startDate); + + while (currentDate <= endDate) { + dates.push(new Date(currentDate)); + currentDate.setDate(currentDate.getDate() + 1); + } + + return [...dates, ...dates.slice().reverse()]; +} + +let iterations = 0; +async function repeatAsyncFunctionSynchronously() { + let finished = false; + let result; + + while (!finished) { + try { + result = await play(); + iterations++; + if (iterations > 5) + finished = true; + } catch (error) { + console.error("Error occurred:", error); + break; + } + } +} + +repeatAsyncFunctionSynchronously(); \ No newline at end of file diff --git a/samples/pingpong/stage.ts b/samples/pingpong/stage.ts new file mode 100644 index 0000000..5b40761 --- /dev/null +++ b/samples/pingpong/stage.ts @@ -0,0 +1,68 @@ +import { Command } from 'commander'; +import DimeSchedulerClient, { Environment } from 'dimescheduler'; +import { Appointment, Category, Job, Task } from 'dimescheduler/models'; +const program = new Command(); + +const collect = (val: any, memo: any[]) => { + memo.push(val); + return memo; +} + +program + .requiredOption('-s, --start ', 'Start date') + .requiredOption('-e, --end ', 'End date') + .requiredOption('-r, --resources ', 'Resources', collect, []); + +program.parse(process.argv); + +const options = program.opts(); +const createBallColor = async (client: DimeSchedulerClient) => { + const ballColor = new Category(); + ballColor.name = "PINGPONG"; + ballColor.color = "#FF65D4"; + await client.import(ballColor); +} + +// Need to create a job and a task for appointments to arrive on the planning board +const createJobTask = async (client: DimeSchedulerClient) => { + const job = new Job(); + job.SourceApp = "PINGPONG"; + job.SourceType = "PINGPONG"; + job.JobNo = "PINGPONG"; + job.ShortDescription = "PING PONG SAMPLE"; + await client.import(job); + + const task = new Task(); + task.sourceApp = "PINGPONG"; + task.sourceType = "PINGPONG"; + task.jobNo = "PINGPONG"; + task.taskNo = "PINGPONG"; + task.shortDescription = "PING PONG SAMPLE"; + await client.import(task); +} + +const createPlayer = async (client: DimeSchedulerClient, date: Date, resourceNo: string) => { + const start = new Date(date); + const endOfDay = new Date(date); + endOfDay.setDate(endOfDay.getDate() + 1); + + const appointment = new Appointment(); + appointment.resourceNo = resourceNo; + appointment.start = start.toISOString(); + appointment.end = endOfDay.toISOString(); + appointment.sourceApp = "PINGPONG"; + appointment.sourceType = "PINGPONG"; + appointment.jobNo = "PINGPONG"; + appointment.taskNo = "PINGPONG"; + + await client.import(appointment); +} + +const client = new DimeSchedulerClient(Bun.env.DS_API_KEY as string, Environment.Test); +await createJobTask(client); +await createBallColor(client); + +for (const resource of options.resources) { + await createPlayer(client, options.start, resource); + await createPlayer(client, options.end, resource); +} \ No newline at end of file diff --git a/samples/pingpong/tsconfig.json b/samples/pingpong/tsconfig.json new file mode 100644 index 0000000..238655f --- /dev/null +++ b/samples/pingpong/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + // Enable latest features + "lib": ["ESNext", "DOM"], + "target": "ESNext", + "module": "ESNext", + "moduleDetection": "force", + "jsx": "react-jsx", + "allowJs": true, + + // Bundler mode + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "noEmit": true, + + // Best practices + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false + } +} diff --git a/src/lib/endpoints/import.ts b/src/lib/endpoints/import.ts index 180de4d..040f17a 100644 --- a/src/lib/endpoints/import.ts +++ b/src/lib/endpoints/import.ts @@ -17,8 +17,6 @@ class ImportEndPoint extends Endpoint { const data = params.map(x => x.toImportRequest(append ? CrudType.Append : CrudType.Delete)); const body = JSON.stringify(data); - console.log(body); - const headers = { 'X-API-KEY': this.apiKey, 'Content-Type': 'application/json',