ons-firestore 1.1.2 → 1.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: 5c03f48298f3f5b0bd96a5f30547076852959de3f6f4980d39ebf2cc580fbe68
4
- data.tar.gz: 8af0d18d60cf314bf93f53f8647655b7482f472a338480078cedf55362dc22b2
3
+ metadata.gz: b1409410ed2eeda669760d9de820c52475fdc0430dc2ca073830587102d8cb23
4
+ data.tar.gz: 956e2ad87753f9a8e13dca996ad3d1f3be3362689e993ac077c7d5865b34e413
5
5
  SHA512:
6
- metadata.gz: 3a6a540662de8767427f296d377e08b3ca359a30751f5047fdb076147bb8b050f22ec70b7aecbdf665fb45df33553bbf48d489b6cc04ffcfaa2c3243b767d027
7
- data.tar.gz: d0fc5a3f590acb665517dd02e7927d66b40192e82ef0656dcaf468e82a1e2bd99b6faa521d87741b7b7d7f2c8a5931fa442b6705e2f2e2537d9452b097c3f115
6
+ metadata.gz: b9f264f04c6e0f64ef1befda1294236a2153aa64f4862d63c0d4addfca5ac0931a4358c37f707a7786388616849a29e56970523bcd831938087f58add0eb5409
7
+ data.tar.gz: 11e1f4f2512587bc54de61647cae2e007f1cbac20b0cbd7f50bddb32a19b265de464ce2e1e90bbd1eddf5dd0d620d406aede404052f2df8b1629deabe6fe9694
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'google/cloud/firestore'
4
- require 'logger'
4
+
5
+ require_relative 'firestore_error'
5
6
 
6
7
  # Class to manage access to Firestore.
7
8
  class Firestore
@@ -49,12 +50,15 @@ class Firestore
49
50
  # @param document_name [String] the name of the Firestore document
50
51
  # @return [Object] document data
51
52
  # @raise [ArgumentError] if collection_name or document_name are nil
53
+ # @raise [FirestoreError] if the +data+ key isn't present within the Firestore document
52
54
  def read_document(collection_name, document_name)
53
55
  raise ArgumentError.new('collection_name cannot be nil') if collection_name.nil?
54
56
  raise ArgumentError.new('document_name cannot be nil') if document_name.nil?
55
57
 
56
58
  document = @client.col(collection_name).doc(document_name)
57
59
  snapshot = document.get
60
+ raise FirestoreError('data key is missing') if snapshot.data.nil?
61
+
58
62
  snapshot[:data]
59
63
  end
60
64
 
@@ -67,6 +71,7 @@ class Firestore
67
71
  # @param document_name [String] the name of the Firestore document
68
72
  # @param data [Object] data to save to the Firestore document
69
73
  # @raise [ArgumentError] if collection_name or document_name are nil
74
+ # @raise [FirestoreError] if an error occurred whilst saving the document
70
75
  def save_document(collection_name, document_name, data)
71
76
  raise ArgumentError.new('collection_name cannot be nil') if collection_name.nil?
72
77
  raise ArgumentError.new('document_name cannot be nil') if document_name.nil?
@@ -87,9 +92,7 @@ class Firestore
87
92
  begin
88
93
  document.set({ data: hash_data, updated: Time.now.strftime(DATE_TIME_FORMAT) })
89
94
  rescue StandardError => e
90
- logger = Logger.new($stderr)
91
- logger.error("Failed to save Firestore document #{document_name} in collection #{collection_name}: #{e.message}")
92
- logger.error(e.backtrace.join("\n"))
95
+ raise FirestoreError("Failed to save Firestore document #{document_name} in collection #{collection_name}: #{e.message}")
93
96
  end
94
97
  end
95
98
  end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Class representing an error that occurred whilst reading or writing Firestore data.
4
+ class FirestoreError < StandardError
5
+ end
@@ -3,8 +3,8 @@
3
3
  module ONSFirestore
4
4
  module Version
5
5
  MAJOR = 1
6
- MINOR = 1
7
- TINY = 2
6
+ MINOR = 2
7
+ TINY = 0
8
8
  end
9
9
  VERSION = [Version::MAJOR, Version::MINOR, Version::TINY].compact * '.'
10
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ons-firestore
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Topley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-05 00:00:00.000000000 Z
11
+ date: 2022-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-cloud-firestore
@@ -78,6 +78,7 @@ files:
78
78
  - README.md
79
79
  - lib/ons-firestore.rb
80
80
  - lib/ons-firestore/firestore.rb
81
+ - lib/ons-firestore/firestore_error.rb
81
82
  - lib/ons-firestore/version.rb
82
83
  homepage: https://github.com/ONSdigital/ons-firestore
83
84
  licenses: