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