seatsio 42.3.0 → 43.2.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: 3d7be68487b9ae3ceafe4802ba51c25c0623cfcb0d99cc6888806556a705b501
4
+ data.tar.gz: 5d778458ff35a5dd85814b03c375d9d94c0ebf9f75cac084707df1cd6eaa38b7
5
5
  SHA512:
6
- metadata.gz: 10794c6985afcaa64ad17fa801d1e6f64268150a18e9b3f3b99229eec5899c09367e8f395b2bd7aab5dd74172b3819c9403ef12ea78a1146dfc125f2a9e0a5e5
7
- data.tar.gz: a18ce18789b0d61636b04bda1accb1752de99ca56c8d1d00ad917710e3bdab103d9454e913e51d23021af67afc8da2eef31b3b241a227303ebbcb68dbc4ff84b
6
+ metadata.gz: 58f5d940d4e0af4fc6671b9f5c4f98db7062706c7f41ae7091d67e4a2ad40653206c66ea14ffdc6ea5716bdd4d4ee61c2f0119fcc365a1b817d457c406433528
7
+ data.tar.gz: 9642021c0a88a10ec084e08c042531fc3e0e3ea17129eb4328ae40d371a8c99e6fa49b1792a9cfe3c52f8e4f7af34f0d923b2f3c9d7ed53f917c9a5be7504457
@@ -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,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- seatsio (42.3.0)
4
+ seatsio (43.2.0)
5
+ rest-client (~> 2.0, >= 2.0.2)
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
@@ -19,7 +20,7 @@ GEM
19
20
  mime-types (3.3.1)
20
21
  mime-types-data (~> 3.2015)
21
22
  mime-types-data (3.2021.0225)
22
- minitest (5.17.0)
23
+ minitest (5.18.0)
23
24
  minitest-parallel_fork (1.3.0)
24
25
  minitest (>= 5.15.0)
25
26
  netrc (0.11.0)
@@ -47,7 +48,6 @@ DEPENDENCIES
47
48
  minitest (~> 5.0)
48
49
  minitest-parallel_fork (~> 1.3)
49
50
  rake (~> 13.0)
50
- rest-client (~> 2.0, >= 2.0.2)
51
51
  seatsio!
52
52
  webmock (~> 3.4, >= 3.4.2)
53
53
 
@@ -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.2.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
+ }
data/seatsio.gemspec CHANGED
@@ -20,10 +20,11 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
22
 
23
+ spec.add_runtime_dependency "rest-client", '~> 2.0', '>= 2.0.2'
24
+
23
25
  spec.add_development_dependency "bundler", "~> 2.2"
24
26
  spec.add_development_dependency "rake", "~> 13.0"
25
27
  spec.add_development_dependency "minitest", "~> 5.0"
26
- spec.add_development_dependency "rest-client", '~> 2.0', '>= 2.0.2'
27
28
  spec.add_development_dependency 'webmock', '~> 3.4', '>= 3.4.2'
28
29
  spec.add_development_dependency 'minitest-parallel_fork', '~> 1.3'
29
30
  end
metadata CHANGED
@@ -1,77 +1,77 @@
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.2.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-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: rest-client
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.2'
20
- type: :development
19
+ version: '2.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 2.0.2
23
+ type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
- version: '2.2'
29
+ version: '2.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 2.0.2
27
33
  - !ruby/object:Gem::Dependency
28
- name: rake
34
+ name: bundler
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '13.0'
39
+ version: '2.2'
34
40
  type: :development
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
44
  - - "~>"
39
45
  - !ruby/object:Gem::Version
40
- version: '13.0'
46
+ version: '2.2'
41
47
  - !ruby/object:Gem::Dependency
42
- name: minitest
48
+ name: rake
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '5.0'
53
+ version: '13.0'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: '5.0'
60
+ version: '13.0'
55
61
  - !ruby/object:Gem::Dependency
56
- name: rest-client
62
+ name: minitest
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: '2.0'
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- version: 2.0.2
67
+ version: '5.0'
65
68
  type: :development
66
69
  prerelease: false
67
70
  version_requirements: !ruby/object:Gem::Requirement
68
71
  requirements:
69
72
  - - "~>"
70
73
  - !ruby/object:Gem::Version
71
- version: '2.0'
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: 2.0.2
74
+ version: '5.0'
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: webmock
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -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