| 19 | |
| 20 | ==== SQL queries за правилно извршување на акциите ==== |
| 21 | |
| 22 | Следната низа од квериња е преведена од show.sql=true property во Spring, со цел да се види што е правилната низа на операции кои се извршуваат од кога корисникот го активира копчето за регистрирање. |
| 23 | |
| 24 | {{{ |
| 25 | -- Проверка дали постои корисник со внесената email адреса |
| 26 | SELECT |
| 27 | user_id, |
| 28 | created_at, |
| 29 | email, |
| 30 | is_active, |
| 31 | name, |
| 32 | password_hash, |
| 33 | surname |
| 34 | FROM reportiumuser |
| 35 | WHERE email = :typed_email; |
| 36 | |
| 37 | -- Вметнување на корисник во главната табела од ReportiumUser |
| 38 | INSERT INTO reportiumuser ( |
| 39 | created_at, |
| 40 | email, |
| 41 | is_active, |
| 42 | name, |
| 43 | password_hash, |
| 44 | surname |
| 45 | ) |
| 46 | VALUES (?, ?, ?, ?, ?, ?); |
| 47 | |
| 48 | -- Тригер кој прави автоматски профил за новиот корисник |
| 49 | |
| 50 | CREATE FUNCTION create_profile_automatically_when_user_comes() RETURNS TRIGGER AS $$ |
| 51 | BEGIN |
| 52 | INSERT INTO UserProfile (user_id, role_id, username) |
| 53 | VALUES (NEW.user_id, 2, NEW.name || ' ' || NEW.surname); |
| 54 | RETURN NEW; |
| 55 | END; |
| 56 | $$ LANGUAGE plpgsql; |
| 57 | |
| 58 | CREATE TRIGGER trg_create_profile_for_user |
| 59 | AFTER INSERT ON ReportiumUser |
| 60 | FOR EACH ROW |
| 61 | EXECUTE FUNCTION create_profile_automatically_when_user_comes(); |
| 62 | |
| 63 | -- Го пребарува корисникот кој е внесен по profile_id, кое веќе постои |
| 64 | SELECT |
| 65 | profile_id, |
| 66 | profile_created_at, |
| 67 | user_id, |
| 68 | role_id, |
| 69 | username |
| 70 | FROM userprofile |
| 71 | WHERE user_id = ?; |
| 72 | |
| 73 | -- Избира default улога |
| 74 | SELECT |
| 75 | role_id, |
| 76 | description, |
| 77 | role_name |
| 78 | FROM role |
| 79 | WHERE role_id = :default; |
| 80 | |
| 81 | -- Вметнува лог дека е регистриран нов корисник |
| 82 | INSERT INTO userprofilelog ( |
| 83 | change_description, |
| 84 | changed_at, |
| 85 | profile_id |
| 86 | ) |
| 87 | VALUES (?, ?, ?); |
| 88 | }}} |