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 +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/bas/bot/fetch_ptos_from_notion.rb +40 -5
- data/lib/bas/bot/humanize_pto.rb +1 -3
- data/lib/bas/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 216571ef89c79b718c94679f1eee6890d3f0d278f563cb7b4dc1d3b6e9fc3d5f
|
4
|
+
data.tar.gz: 2ccd756d550b06b8946af3298bc21b6ef4535679f4b74479d5140a99b740424b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
111
|
-
|
112
|
-
|
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
|
|
data/lib/bas/bot/humanize_pto.rb
CHANGED
@@ -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.
|
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
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.
|
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-
|
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 '
|
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.
|
87
|
+
rubygems_version: 3.5.11
|
88
88
|
signing_key:
|
89
89
|
specification_version: 4
|
90
90
|
summary: BAS - Business automation system
|