class Netig hash_branch "account" do |r| rodauth.require_account member = DB[:members] .where(account_id: rodauth.session_value) .first r.halt [404, {}, ["Fiche membre introuvable."]] unless member @page_title = "Mon espace — NETig" @page_description = "Consultez vos informations personnelles et suivez votre adhésion à l'association NETig." @canonical_url = "https://netig.net/account" r.is do r.get do @membership = DB[:memberships] .where(member_id: member[:id]) .order(Sequel.desc(:requested_at), Sequel.desc(:id)) .first view "account" end end r.post "membership" do active_membership = DB[:memberships] .where( member_id: member[:id], status: %w[pending accepted] ) .first if active_membership flash["error"] = "Une demande d'adhésion est déjà en cours ou acceptée." else begin DB[:memberships].insert(member_id: member[:id]) flash["notice"] = "Votre demande d'adhésion a été transmise au Noyau." rescue Sequel::UniqueConstraintViolation flash["error"] = "Une demande d'adhésion est déjà en cours." end end r.redirect "/account" end end end