Skip to content

Commit

Permalink
Merge pull request #57 from solita/feature/AE-2012
Browse files Browse the repository at this point in the history
AE-2012: Add title fields for pääkäyttäjät, used in document templates
  • Loading branch information
Juholei authored Jan 22, 2024
2 parents 3f38c4b + eebd688 commit 38f4bfc
Show file tree
Hide file tree
Showing 20 changed files with 229 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@
:rooli (schema/enum 1 2 3 4)
:henkilotunnus (schema/maybe common-schema/Henkilotunnus)
:virtu (schema/maybe VirtuId)
:organisaatio schema/Str})
:organisaatio schema/Str
:titteli-fi (schema/maybe schema/Str)
:titteli-sv (schema/maybe schema/Str)})

(def Password
(schema/constrained schema/Str
Expand Down Expand Up @@ -52,7 +54,9 @@
:sukunimi schema/Str
:puhelin schema/Str
:email schema/Str
:organisaatio schema/Str}))
:organisaatio schema/Str
:titteli-fi (schema/maybe schema/Str)
:titteli-sv (schema/maybe schema/Str)}))

(def Whoami (-> Kayttaja
(dissoc :passivoitu :valvoja :login :api-key)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@
{:päivä (time/today)
:määräpäivä (time/format-date (:deadline-date toimenpide))
:diaarinumero (:diaarinumero toimenpide)
:valvoja (select-keys whoami [:etunimi :sukunimi :email :puhelin])
:valvoja (select-keys whoami [:etunimi :sukunimi :email :puhelin :titteli-fi :titteli-sv])
:omistaja-henkilo (when (osapuoli/henkilo? osapuoli)
(-> (select-keys osapuoli [:etunimi :sukunimi :jakeluosoite :postinumero :postitoimipaikka :henkilotunnus])
(update-in [:henkilotunnus] (fn [henkilotunnus] (when henkilotunnus (string/replace henkilotunnus "-" "")))))) ; Replace hyphen with non-breaking variant
Expand Down
4 changes: 2 additions & 2 deletions etp-core/etp-backend/src/main/sql/solita/etp/db/kayttaja.sql
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ select
valvoja, passivoitu, rooli_id as rooli,
login, verifytime, cognito_id as cognitoid,
virtu$localid, virtu$organisaatio, henkilotunnus,
organisaatio
organisaatio, titteli_fi, titteli_sv
from kayttaja where id = :id

-- name: select-kayttajat
Expand All @@ -13,7 +13,7 @@ select
valvoja, passivoitu, rooli_id as rooli,
login, verifytime, cognito_id as cognitoid,
virtu$localid, virtu$organisaatio, henkilotunnus,
organisaatio
organisaatio, titteli_fi, titteli_sv
from kayttaja where rooli_id in (1, 2, 3, 4)

-- name: select-kayttaja-history
Expand Down
3 changes: 2 additions & 1 deletion etp-core/etp-backend/src/main/sql/solita/etp/db/whoami.sql
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ SELECT k.id id, k.etunimi etunimi, k.sukunimi sukunimi, k.email email, k.puhelin
k.virtu$organisaatio, k.henkilotunnus henkilotunnus,
k.organisaatio,
k.api_key_hash api_key_hash, k.verifytime,
coalesce(l.partner, false) as partner
coalesce(l.partner, false) as partner,
k.titteli_fi, k.titteli_sv
FROM kayttaja k
LEFT JOIN laatija l ON l.id = k.id
WHERE (not k.passivoitu) AND
Expand Down
127 changes: 127 additions & 0 deletions etp-core/etp-backend/src/test/clj/solita/etp/api/kayttaja_test.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
(ns solita.etp.api.kayttaja-test
(:require [clojure.test :as t]
[jsonista.core :as j]
[ring.mock.request :as mock]
[solita.etp.test-data.kayttaja :as test-kayttaja]
[solita.etp.test-data.laatija :as laatija-test-data]
[solita.etp.test-system :as ts]))

(t/use-fixtures :each ts/fixture)

(t/deftest kayttaja-title-test
(let [user-id (test-kayttaja/insert-virtu-paakayttaja!
{:etunimi "Asian"
:sukunimi "Tuntija"
:email "[email protected]"
:puhelin "0504363675457"})]
(t/testing "User can be fetched from the api after being created"
(let [response (ts/handler (-> (mock/request :get (format "/api/private/kayttajat/%s" user-id))
(test-kayttaja/with-virtu-user)
(mock/header "Accept" "application/json")))]
(t/is (= (:status response)
200))

(t/is (= (-> response :body (j/read-value j/keyword-keys-object-mapper))
{:titteli-fi nil
:titteli-sv nil
:etunimi "Asian"
:sukunimi "Tuntija"
:email "[email protected]"
:puhelin "0504363675457"
:cognitoid nil
:henkilotunnus nil
:id 1
:login nil
:organisaatio ""
:passivoitu false
:rooli 2
:valvoja false
:verifytime nil
:virtu {:localid "vvirkamies"
:organisaatio "testivirasto.fi"}}))))

(t/testing "Setting the title fields in user update request succeeds"
(let [user-update {:titteli-fi "Energia-asiantuntija"
:titteli-sv "Energiexpert"
:valvoja false
:email "[email protected]"
:puhelin "0504363675457"
:sukunimi "Tuntija"
:virtu {:localid "vvirkamies"
:organisaatio "testivirasto.fi"}
:rooli 2
:henkilotunnus nil
:passivoitu false
:etunimi "Asian"
:organisaatio ""
:api-key nil}
response (ts/handler (-> (mock/request :put (format "/api/private/kayttajat/%s" user-id))
(mock/json-body user-update)
(test-kayttaja/with-virtu-user)
(mock/header "Accept" "application/json")))]
(t/is (= (:status response)
200))

(t/testing "and the title and pre-existing fields are present in the returned user"
(let [user (-> (mock/request :get (format "/api/private/kayttajat/%s" user-id))
(test-kayttaja/with-virtu-user)
(mock/header "Accept" "application/json")
ts/handler
:body
(j/read-value j/keyword-keys-object-mapper))]
(t/is (= user
{:titteli-fi "Energia-asiantuntija"
:titteli-sv "Energiexpert"
:etunimi "Asian"
:sukunimi "Tuntija"
:email "[email protected]"
:puhelin "0504363675457"
:cognitoid nil
:henkilotunnus nil
:id 1
:login nil
:organisaatio ""
:passivoitu false
:rooli 2
:valvoja false
:verifytime nil
:virtu {:localid "vvirkamies"
:organisaatio "testivirasto.fi"}}))))))))

(t/deftest retrieve-users-test
(test-kayttaja/insert-virtu-paakayttaja!
{:etunimi "Asian"
:sukunimi "Tuntija"
:email "[email protected]"
:puhelin "0504363675457"})
(t/testing "Users can be retrieved through the api"
;; Create users, together with the pääkäyttäjä there are 200 users
(test-kayttaja/generate-and-insert! 199)
(let [response (ts/handler (-> (mock/request :get "/api/private/kayttajat")
(test-kayttaja/with-virtu-user)
(mock/header "Accept" "application/json")))
users (-> response :body (j/read-value j/keyword-keys-object-mapper))]
(t/is (= (:status response) 200))
(t/is (= (count users)
200))

(t/testing "Users have title fields"
(doseq [laatija users]
(t/is (true? (contains? laatija :titteli-fi)))
(t/is (true? (contains? laatija :titteli-sv)))))))

(t/testing "Laatija users can be retrieved through the api"
(laatija-test-data/generate-and-insert! 200)
(let [response (ts/handler (-> (mock/request :get "/api/private/laatijat")
(test-kayttaja/with-virtu-user)
(mock/header "Accept" "application/json")))
laatijat (-> response :body (j/read-value j/keyword-keys-object-mapper))]
(t/is (= (:status response) 200))

(t/is (= (count laatijat)
200))

(t/testing "Laatija users don't have title fields"
(doseq [laatija laatijat]
(t/is (false? (contains? laatija :titteli-fi)))
(t/is (false? (contains? laatija :titteli-sv))))))))
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@
{:etunimi "Asian"
:sukunimi "Tuntija"
:email "[email protected]"
:puhelin "0504363675457"})
:puhelin "0504363675457"
:titteli-fi "energia-asiantuntija"
:titteli-sv "energiexpert"})
(t/testing "Käskypäätös / Kuulemiskirje toimenpide is created successfully for yksityishenkilö and document is generated with correct information"
;; Add the valvonta and previous toimenpides
;; so that käskypäätös / kuulemiskirje toimenpide can be created
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
{:etunimi "Asian"
:sukunimi "Tuntija"
:email "[email protected]"
:puhelin "0504363675457"})
:puhelin "0504363675457"
:titteli-fi "energia-asiantuntija"
:titteli-sv "energiexpert"})
(t/testing "Käskypäätös / varsinainen päätös toimenpide is created successfully for yksityishenkilö and document is generated with correct information"
;; Add the valvonta and previous toimenpides
;; so that käskypäätös / kuulemiskirje toimenpide can be created
Expand Down Expand Up @@ -568,7 +570,9 @@
{:etunimi "Asian"
:sukunimi "Tuntija"
:email "[email protected]"
:puhelin "0504363675457"})
:puhelin "0504363675457"
:titteli-fi "energia-asiantuntija"
:titteli-sv "energiexpert"})
(t/testing "Käskypäätös / varsinainen päätös toimenpide is created successfully for yksityishenkilö even though yritysosapuoli with same id exists"
;; Add the valvonta and previous toimenpides
;; so that käskypäätös / kuulemiskirje toimenpide can be created
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@
{:etunimi "Asian"
:sukunimi "Tuntija"
:email "[email protected]"
:puhelin "0504363675457"})
:puhelin "0504363675457"
:titteli-fi "energia-asiantuntija"
:titteli-sv "energiexpert"})
(t/testing "Preview api call for sakkopäätös / kuulemiskirje toimenpide succeeds"
(let [valvonta-id (valvonta-service/add-valvonta! ts/*db*
{:katuosoite "Testitie 5"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
{:etunimi "Asian"
:sukunimi "Tuntija"
:email "[email protected]"
:puhelin "0504363675457"})
:puhelin "0504363675457"
:titteli-fi "energia-asiantuntija"
:titteli-sv "energiexpert"})
(t/testing "Sakkopäätös / varsinainen päätös toimenpide is created successfully for yksityishenkilö and document is generated with correct information"
;; Add the valvonta and previous toimenpides
;; so that käskypäätös / kuulemiskirje toimenpide can be created
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,9 @@ values (5, 'Käskypäätös / kuulemiskirje', 'Käskypäätös / kuulemiskirje (

{{#valvoja}}
{{etunimi}} {{sukunimi}}
{{/valvoja}}<br/>
energia-asiantuntija
<br/>
{{titteli-fi}}
{{/valvoja}}
</div>

<p class="footnote mb-0"><sup>1</sup> ARAn energiatodistusrekisterissä ovat 1.5.2015 jälkeen laaditut energiatodistukset.</p>
Expand Down Expand Up @@ -169,8 +170,9 @@ energia-asiantuntija

{{#valvoja}}
{{etunimi}} {{sukunimi}}
{{/valvoja}}<br/>
energiexpert
<br/>
{{titteli-sv}}
{{/valvoja}}
</div>

<p class="footnote mb-0"><sup>2</sup> I ARAs energicertifikatregister finns energicertifikat som upprättats efter 1 maj 2015.</p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ values (6, 'Käskypäätös / varsinainen päätös', 'Käskypäätös / varsina

<div class="page-break-avoid">
{{#valvoja}}
<p>Lisätietoja päätöksestä antaa energia-asiantuntija {{etunimi}} {{sukunimi}}, <br/>puh. {{puhelin}} / s-posti
<p>Lisätietoja päätöksestä antaa {{titteli-fi}} {{etunimi}} {{sukunimi}}, <br/>puh. {{puhelin}} / s-posti
{{email}}. </p>
{{/valvoja}}

Expand All @@ -151,8 +151,8 @@ values (6, 'Käskypäätös / varsinainen päätös', 'Käskypäätös / varsina
<td>
{{#valvoja}}
<div>{{etunimi}} {{sukunimi}}</div>
<div>{{titteli-fi}}</div>
{{/valvoja}}
<div>energia-asiantuntija</div>
</td>
</tr>
</table>
Expand Down Expand Up @@ -333,7 +333,7 @@ values (6, 'Käskypäätös / varsinainen päätös', 'Käskypäätös / varsina

<div class="page-break-avoid">
{{#valvoja}}
<p>Mer information om besslutet ges av energiexpert {{etunimi}} {{sukunimi}}, <br/>tfn {{puhelin}} / e-post
<p>Mer information om besslutet ges av {{titteli-sv}} {{etunimi}} {{sukunimi}}, <br/>tfn {{puhelin}} / e-post
{{email}}.</p>
{{/valvoja}}

Expand All @@ -349,8 +349,8 @@ values (6, 'Käskypäätös / varsinainen päätös', 'Käskypäätös / varsina
<td>
{{#valvoja}}
<div>{{etunimi}} {{sukunimi}}</div>
<div>{{titteli-sv}}</div>
{{/valvoja}}
<div>energiexpert</div>
</td>
</tr>
</table>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,9 @@ values (7, 'Sakkopäätös / kuulemiskirje', 'Sakkopäätös / kuulemiskirje (sv

{{#valvoja}}
{{etunimi}} {{sukunimi}}
{{/valvoja}}<br/>
energia-asiantuntija
<br/>
{{titteli-fi}}
{{/valvoja}}
</div>

<div class="sivunvaihto"></div>
Expand Down Expand Up @@ -137,8 +138,9 @@ energia-asiantuntija

{{#valvoja}}
{{etunimi}} {{sukunimi}}
{{/valvoja}}<br/>
energiexpert
<br/>
{{titteli-sv}}
{{/valvoja}}
</div>
$$)
on conflict (id) do update set label_fi = excluded.label_fi,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ values (9, 'Sakkopäätös / varsinainen päätös', 'Sakkopäätös / varsinain

<div class="page-break-avoid">
{{#valvoja}}
<p>Lisätietoja päätöksestä antaa energia-asiantuntija {{etunimi}} {{sukunimi}}, <br/>puh. {{puhelin}} / s-posti
<p>Lisätietoja päätöksestä antaa {{titteli-fi}} {{etunimi}} {{sukunimi}}, <br/>puh. {{puhelin}} / s-posti
{{email}}.</p>
{{/valvoja}}

Expand All @@ -142,8 +142,8 @@ values (9, 'Sakkopäätös / varsinainen päätös', 'Sakkopäätös / varsinain
<td>
{{#valvoja}}
<div>{{etunimi}} {{sukunimi}}</div>
<div>{{titteli-fi}}</div>
{{/valvoja}}
<div>energia-asiantuntija</div>
</td>
</tr>
</table>
Expand Down Expand Up @@ -298,7 +298,7 @@ values (9, 'Sakkopäätös / varsinainen päätös', 'Sakkopäätös / varsinain

<div class="page-break-avoid">
{{#valvoja}}
<p>Mer information om beslutet ges av energiexpert {{etunimi}} {{sukunimi}}, <br />tfn {{puhelin}} / e-post
<p>Mer information om beslutet ges av {{titteli-sv}} {{etunimi}} {{sukunimi}}, <br />tfn {{puhelin}} / e-post
{{email}}.</p>
{{/valvoja}}

Expand All @@ -314,8 +314,8 @@ values (9, 'Sakkopäätös / varsinainen päätös', 'Sakkopäätös / varsinain
<td>
{{#valvoja}}
<div>{{etunimi}} {{sukunimi}}</div>
<div>{{titteli-sv}}</div>
{{/valvoja}}
<div>energiexpert</div>
</td>
</tr>
</table>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
alter table kayttaja add column titteli_fi text default null;
alter table kayttaja add column titteli_sv text default null;
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
update kayttaja
set titteli_fi = 'energia-asiantuntija',
titteli_sv = 'energiexpert'
where rooli_id = 2;
2 changes: 2 additions & 0 deletions etp-front/src/language/fi.json
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,8 @@
"email": "Sähköpostiosoite",
"kayttajatunnus": "Tiedonsiirron käyttäjätunnus",
"puhelin": "Puhelinnumero",
"titteli-fi": "Titteli (suomi)",
"titteli-sv": "Titteli (ruotsi)",
"perustiedot-header": "Perustiedot",
"api-header": "Rajapinta",
"aineistot-header": "Aineistot",
Expand Down
2 changes: 2 additions & 0 deletions etp-front/src/language/sv.json
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,8 @@
"email": "E-postadress",
"kayttajatunnus": "Användarnamn för dataöverföring",
"puhelin": "Telefon",
"titteli-fi": "Titteli (suomi) (sv)",
"titteli-sv": "Titteli (ruotsi) (sv)",
"perustiedot-header": "Basuppgifter",
"api-header": "API",
"aineistot-header": "Materialer",
Expand Down
Loading

0 comments on commit 38f4bfc

Please sign in to comment.