bas 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b15ef30bfbc91578e5b2ef5bf19861f9bda796d0296faa65ae80cd2244521655
4
- data.tar.gz: 34775b96d78ee72c66a1d7501020d810030bbf6fc0396ec12e0aa39ed58d3735
3
+ metadata.gz: 216571ef89c79b718c94679f1eee6890d3f0d278f563cb7b4dc1d3b6e9fc3d5f
4
+ data.tar.gz: 2ccd756d550b06b8946af3298bc21b6ef4535679f4b74479d5140a99b740424b
5
5
  SHA512:
6
- metadata.gz: 7f74a4e1963f29cd2f7cc5d5847d4215cd403281394711570d6c612771ed7036ada74941cd449f1c8c1faf82b7d6f33bb0941ce81b4c39884a240404637e6d6d
7
- data.tar.gz: 82c7867b2b3af0a16f3ca4780c796bff3ed3ae3e27d5b6e31d91731d2dea7bc367ebd4ac9ad39e54b98c56ef3f686e9bdf5411e54c8dd7fe6359356ca7809e48
6
+ metadata.gz: f8b27047e7c1da06071b4711f434ae3c9313ae8b8bed345724b57c344fb15c5ddb4c2bbe30ecc930ab96431f29c61230cdb8449eb2c1720b40b33e20c02fee20
7
+ data.tar.gz: 4285d4d6e805cc843f7218e4937bb0e7b5ce24a240b5261a2a75a89253e03538c4a93f7840e120715123a7d19822039a0f7b9ea70b7a2e6d8dac28a806557ebf
data/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # Changelog
2
2
 
3
+ # 1.0.1 (21.06.2024)
4
+ - Refactor pto notification format for improving OpenAI response.
5
+
3
6
  # 1.0.0 (17.05.2024)
4
7
  - [Refactor Project Architecture](https://github.com/kommitters/bas/issues/35)
5
8
  - [Refactor PTO today Use Case](https://github.com/kommitters/bas/issues/29)
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "date"
4
+
3
5
  require_relative "./base"
4
6
  require_relative "../read/default"
5
7
  require_relative "../utils/notion/request"
@@ -106,14 +108,47 @@ module Bot
106
108
  results.map do |pto|
107
109
  pto_fields = pto["properties"]
108
110
 
109
- {
110
- "Name" => extract_description_field_value(pto_fields["Description"]),
111
- "StartDateTime" => extract_date_field_value(pto_fields["StartDateTime"]),
112
- "EndDateTime" => extract_date_field_value(pto_fields["EndDateTime"])
113
- }
111
+ name = extract_description_field_value(pto_fields["Description"])
112
+ start_date = extract_date_field_value(pto_fields["StartDateTime"])
113
+ end_date = extract_date_field_value(pto_fields["EndDateTime"])
114
+
115
+ description(name, start_date, end_date)
114
116
  end
115
117
  end
116
118
 
119
+ def description(name, start_date, end_date)
120
+ start = start_description(start_date)
121
+ finish = end_description(end_date)
122
+
123
+ "#{name} will not be working between #{start} and #{finish}. And returns the #{returns(finish)}"
124
+ end
125
+
126
+ def start_description(date)
127
+ date[:from]
128
+ end
129
+
130
+ def end_description(date)
131
+ return date[:from] if date[:to].nil?
132
+
133
+ date[:to]
134
+ end
135
+
136
+ def returns(date)
137
+ date.include?("T") ? "#{date} in the afternoon" : next_work_day(date)
138
+ end
139
+
140
+ def next_work_day(date)
141
+ datetime = DateTime.parse(date)
142
+
143
+ return_day = case datetime.wday
144
+ when 5 then datetime + 3
145
+ when 6 then datetime + 2
146
+ else datetime + 1
147
+ end
148
+
149
+ return_day.strftime("%A %B %d of %Y").to_s
150
+ end
151
+
117
152
  def extract_description_field_value(data)
118
153
  names = data["title"].map { |name| name["plain_text"] }
119
154
 
@@ -101,9 +101,7 @@ module Bot
101
101
  prompt = process_options[:prompt] || DEFAULT_PROMPT
102
102
  ptos_list = read_response.data["ptos"]
103
103
 
104
- ptos_list_formatted_string = ptos_list.map do |pto|
105
- "#{pto["Name"]} is PTO from StartDateTime: #{pto["StartDateTime"]} to EndDateTime: #{pto["EndDateTime"]}"
106
- end.join("\n")
104
+ ptos_list_formatted_string = ptos_list.join("\n")
107
105
 
108
106
  prompt.gsub("{data}", ptos_list_formatted_string)
109
107
  end
data/lib/bas/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Bas
4
4
  # Gem version
5
- VERSION = "1.0.0"
5
+ VERSION = "1.0.1"
6
6
  end
metadata CHANGED
@@ -1,18 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bas
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - kommitters Open Source
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-05-17 00:00:00.000000000 Z
11
+ date: 2024-06-21 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A versatile business automation system offering key components for building
14
14
  various use cases. It provides an easy-to-use tool for implementing automation
15
- workflows without excessive complexity. Formerly known as 'bns'.
15
+ workflows without excessive complexity. Formerly known as 'bas'.
16
16
  email:
17
17
  - oss@kommit.co
18
18
  executables: []
@@ -84,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
84
  - !ruby/object:Gem::Version
85
85
  version: '0'
86
86
  requirements: []
87
- rubygems_version: 3.5.9
87
+ rubygems_version: 3.5.11
88
88
  signing_key:
89
89
  specification_version: 4
90
90
  summary: BAS - Business automation system