bas 1.0.0 → 1.0.1

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: 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