seatsio 42.3.0 → 43.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c50abbe13ab73a03409fd6396266a9a413fa78f4a2c9dfc4c10059a0bfdca3d4
4
- data.tar.gz: e63dd59695934f136cdfbc0d178be183cfbf9a6f2526e886ad7e9bea4fb5741d
3
+ metadata.gz: 6086a3aa4164457c4c80275d4896ddd4d08d65a83f60d67ab5e1fb110f7cb31a
4
+ data.tar.gz: b54815b5c766d5d1a0156e799e18228b9bebe1917d5bb72ed0113fe4196a10a6
5
5
  SHA512:
6
- metadata.gz: 10794c6985afcaa64ad17fa801d1e6f64268150a18e9b3f3b99229eec5899c09367e8f395b2bd7aab5dd74172b3819c9403ef12ea78a1146dfc125f2a9e0a5e5
7
- data.tar.gz: a18ce18789b0d61636b04bda1accb1752de99ca56c8d1d00ad917710e3bdab103d9454e913e51d23021af67afc8da2eef31b3b241a227303ebbcb68dbc4ff84b
6
+ metadata.gz: ce99bbf39ea1dd5a8d8dddb74ecb66520f2e58c97dcb7d0ee8e11739fe49c30a61887dd43709cb15aad1fb6e468dd7f9270a464bf59d4543e9876d30091ea20b
7
+ data.tar.gz: 18f911f7512ebeb04906a6f410452d82ef85ec84ee3428217074f5efff801f2bbe1aa7f235cc3c306358c565aca96232a16c6adc5ea90ca313b7ea2bc99b19b0
@@ -0,0 +1,44 @@
1
+ # Very important!
2
+ # Make sure that the github token has read AND WRITE access on github.
3
+ # 1. hit https://github.com/seatsio/[REPO]/settings/actions
4
+ # 2. under "Workflow permissions", make sure "Read and write permissions" is checked instead of the (default?) read only.
5
+ #
6
+
7
+ name: Release
8
+ run-name: Release ${{ github.repository }}
9
+ on:
10
+ workflow_dispatch:
11
+ inputs:
12
+ versionToBump:
13
+ description: 'The version to bump. Major for incompatible API changes, minor for adding BC features'
14
+ required: true
15
+ type: choice
16
+ options:
17
+ - minor
18
+ - major
19
+ jobs:
20
+ release:
21
+ runs-on: ubuntu-latest
22
+ steps:
23
+ - uses: actions/checkout@v3
24
+ - uses: fregante/setup-git-user@v2
25
+ - id: install-zx
26
+ run: npm i -g zx
27
+ - id: install-semver-tool
28
+ run: |
29
+ wget -O /usr/local/bin/semver https://raw.githubusercontent.com/fsaintjacques/semver-tool/master/src/semver
30
+ chmod +x /usr/local/bin/semver
31
+ - run: zx ./release.mjs -v $VERSION_TO_BUMP
32
+ env:
33
+ VERSION_TO_BUMP: ${{ inputs.versionToBump }}
34
+ GH_TOKEN: ${{ github.token }}
35
+ - run: |
36
+ mkdir -p $HOME/.gem
37
+ touch $HOME/.gem/credentials
38
+ chmod 0600 $HOME/.gem/credentials
39
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
40
+ gem build *.gemspec
41
+ gem push *.gem
42
+ env:
43
+ GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_API_KEY}}"
44
+
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- seatsio (42.3.0)
4
+ seatsio (43.1.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -425,7 +425,7 @@ module Seatsio
425
425
  end
426
426
  end
427
427
 
428
- class UsageSummaryForAllMoths
428
+ class UsageSummaryForAllMonths
429
429
  attr_reader :items
430
430
 
431
431
  def initialize(data)
@@ -441,9 +441,6 @@ module Seatsio
441
441
  def initialize(data)
442
442
  @month = Month.from_json(data['month'])
443
443
  @num_used_objects = data['numUsedObjects']
444
- @num_first_bookings = data['numFirstBookings']
445
- @num_first_bookings_by_status = data['numFirstBookingsByStatus']
446
- @num_first_bookings_or_selections = data['numFirstBookingsOrSelections']
447
444
  end
448
445
  end
449
446
 
@@ -484,8 +481,6 @@ module Seatsio
484
481
  def initialize(data)
485
482
  @event = UsageEvent.new(data['event'])
486
483
  @num_used_objects = data['numUsedObjects']
487
- @num_first_bookings = data['numFirstBookings']
488
- @num_object_selections = data['numObjectSelections']
489
484
  end
490
485
  end
491
486
 
@@ -499,7 +494,7 @@ module Seatsio
499
494
  end
500
495
  end
501
496
 
502
- class UsageForObject
497
+ class UsageForObjectV1
503
498
 
504
499
  attr_reader :object, :num_first_bookings, :first_booking_date, :num_first_bookings, :num_first_bookings_or_selections
505
500
 
@@ -512,6 +507,17 @@ module Seatsio
512
507
  end
513
508
  end
514
509
 
510
+ class UsageForObjectV2
511
+
512
+ attr_reader :object, :num_used_objects, :usage_by_reason
513
+
514
+ def initialize(data)
515
+ @object = data['object']
516
+ @num_used_objects = data['numUsedObjects']
517
+ @usage_by_reason = data['usageByReason']
518
+ end
519
+ end
520
+
515
521
  class Month
516
522
 
517
523
  attr_reader :year, :month
@@ -13,7 +13,7 @@ module Seatsio
13
13
  def summary_for_all_months
14
14
  url = "reports/usage"
15
15
  body = @http_client.get(url)
16
- UsageSummaryForAllMoths.new(body)
16
+ UsageSummaryForAllMonths.new(body)
17
17
  end
18
18
 
19
19
  def details_for_month(month)
@@ -25,7 +25,11 @@ module Seatsio
25
25
  def details_for_event_in_month(eventId, month)
26
26
  url = "reports/usage/month/" + month.serialize + "/event/" + eventId.to_s
27
27
  body = @http_client.get(url)
28
- body.map { |item| UsageForObject.new(item) }
28
+ if body.empty? or !body[0].key?('usageByReason')
29
+ body.map { |item| UsageForObjectV1.new(item) }
30
+ else
31
+ body.map { |item| UsageForObjectV2.new(item) }
32
+ end
29
33
  end
30
34
  end
31
35
  end
@@ -1,3 +1,3 @@
1
1
  module Seatsio
2
- VERSION = "42.3.0"
2
+ VERSION = "43.1.0"
3
3
  end
data/release.mjs ADDED
@@ -0,0 +1,93 @@
1
+ #!/usr/bin/env zx
2
+
3
+ /*
4
+ * Script to release the seats.io java lib.
5
+ * - changes the version number in README.md
6
+ * - changes the version number in build.gradle
7
+ * - creates the release in Gihub (using gh cli)
8
+ *
9
+ *
10
+ * Prerequisites:
11
+ * - zx installed (https://github.com/google/zx)
12
+ * - gh cli installed (https://cli.github.com/)
13
+ * - semver cli installed (https://github.com/fsaintjacques/semver-tool)
14
+ *
15
+ * Usage:
16
+ * zx ./release.mjs -v major/minor -n "release notes"
17
+ * */
18
+
19
+ // don't output the commands themselves
20
+ $.verbose = false
21
+
22
+ const versionToBump = getVersionToBump()
23
+ const latestVersion = await fetchLatestReleasedVersionNumber()
24
+ const nextVersion = await determineNextVersionNumber(latestVersion)
25
+
26
+ await pullLastVersion()
27
+ .then(bumpVersionInFiles)
28
+ .then(commitAndPush)
29
+ .then(release)
30
+
31
+ function getVersionToBump() {
32
+ if (!argv.v || !(argv.v === 'minor' || argv.v === 'major')) {
33
+ throw new Error ("Please specify -v major/minor")
34
+ }
35
+ return argv.v
36
+ }
37
+
38
+ function removeLeadingV(tagName) {
39
+ if (tagName.startsWith('v')) {
40
+ return tagName.substring(1)
41
+ }
42
+ return tagName
43
+ }
44
+
45
+ async function fetchLatestReleasedVersionNumber() {
46
+ let result = await $`gh release view --json tagName`
47
+ let tagName = JSON.parse(result).tagName
48
+ return removeLeadingV(tagName)
49
+ }
50
+
51
+ async function determineNextVersionNumber(previous) {
52
+ return (await $`semver bump ${versionToBump} ${previous}`).stdout.trim()
53
+ }
54
+
55
+ async function bumpVersionInFiles() {
56
+ await replaceInFile("./lib/seatsio/version.rb", `VERSION = "${latestVersion}"`, `VERSION = "${nextVersion}"`)
57
+ await replaceInFile("Gemfile.lock", `seatsio (${latestVersion})`, `seatsio (${nextVersion})`)
58
+ }
59
+
60
+ async function replaceInFile(filename, latestVersion, nextVersion) {
61
+ return await fs.readFile(filename, 'utf8')
62
+ .then(text => {
63
+ if (text.indexOf(latestVersion) < 0) {
64
+ throw new Error('Not the correct version. Could not find ' + latestVersion + ' in ' + filename)
65
+ }
66
+ return text
67
+ })
68
+ .then(text => text.replace(latestVersion, nextVersion))
69
+ .then(text => fs.writeFileSync(filename, text))
70
+ .then(() => gitAdd(filename))
71
+ }
72
+
73
+ async function pullLastVersion() {
74
+ await $`git checkout master`
75
+ await $`git pull origin master`
76
+ }
77
+
78
+ async function gitAdd(filename) {
79
+ return await $`git add ${filename}`
80
+ }
81
+
82
+ async function commitAndPush() {
83
+ await $`git commit -m "version bump"`
84
+ await $`git push origin master`
85
+ }
86
+
87
+ async function release() {
88
+ const newTag = 'v' + nextVersion
89
+ return await $`gh release create ${newTag} --generate-notes`.catch(error => {
90
+ console.error('something went wrong while creating the release. Please revert the version change!')
91
+ throw error
92
+ })
93
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seatsio
3
3
  version: !ruby/object:Gem::Version
4
- version: 42.3.0
4
+ version: 43.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seats.io
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-10 00:00:00.000000000 Z
11
+ date: 2023-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -116,7 +116,7 @@ files:
116
116
  - ".editorconfig"
117
117
  - ".github/dependabot.yml"
118
118
  - ".github/workflows/build.yml"
119
- - ".github/workflows/publish.yml"
119
+ - ".github/workflows/release.yml"
120
120
  - ".gitignore"
121
121
  - ".ruby-version"
122
122
  - Gemfile
@@ -145,7 +145,7 @@ files:
145
145
  - lib/seatsio/util.rb
146
146
  - lib/seatsio/version.rb
147
147
  - lib/seatsio/workspaces.rb
148
- - releasing.md
148
+ - release.mjs
149
149
  - seatsio.gemspec
150
150
  homepage: http://seats.io
151
151
  licenses: []
@@ -1,21 +0,0 @@
1
- name: 'Publish'
2
-
3
- on:
4
- release:
5
- types: [created]
6
-
7
- jobs:
8
- build:
9
- runs-on: ubuntu-latest
10
-
11
- steps:
12
- - uses: actions/checkout@v2
13
- - run: |
14
- mkdir -p $HOME/.gem
15
- touch $HOME/.gem/credentials
16
- chmod 0600 $HOME/.gem/credentials
17
- printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
18
- gem build *.gemspec
19
- gem push *.gem
20
- env:
21
- GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_API_KEY}}"
data/releasing.md DELETED
@@ -1,5 +0,0 @@
1
- *Note: this is internal documentation for the seats.io team*
2
-
3
- 1) Set the correct version number in lib/seatsio/version.rb
4
- 1) Set the correct version number in Gemfile.lock
5
- 2) Create the release in GitHub