Skip to content
Snippets Groups Projects
Commit f1ab2c47 authored by Allen Gilliland's avatar Allen Gilliland
Browse files

add a function for finding the first session created for a given user (including unit test).

parent 6e400d15
No related branches found
No related tags found
No related merge requests found
(ns metabase.models.session
(:require [korma.core :refer :all, :exclude [defentity update]]
[metabase.db :refer :all]
(:require [korma.core :as k]
(metabase.models [common :refer :all]
[interface :refer :all]
[user :refer [User]])
[metabase.util :as u]))
(defentity Session
[(table :core_session)
(belongs-to User {:fk :user_id})]
[(k/table :core_session)
(k/belongs-to User {:fk :user_id})]
(pre-insert [_ session]
(let [defaults {:created_at (u/new-sql-timestamp)}]
(merge defaults session))))
;; Persistence Functions
(defn first-session-for-user
"Retrieves the first Session `:id` for a given user (if available), or nil otherwise."
[user-id]
{:pre [(integer? user-id)]}
(k/select Session
(k/fields :id)
(k/where {:user_id user-id})
(k/order :created_at :ASC)
(k/limit 1)))
(ns metabase.models.session-test
(:require [expectations :refer :all]
[korma.core :as k]
[metabase.models.session :refer :all]
[metabase.test.data.users :refer :all]))
;; first-session-for-user
(expect
"the-greatest-day-ever"
(do
(k/insert Session
(k/values [{:id "the-greatest-day-ever"
:user_id (user->id :rasta)
:created_at (metabase.util/->Timestamp "1980-10-19")}
{:id "the-world-of-bi-changes-forever"
:user_id (user->id :rasta)
:created_at (metabase.util/->Timestamp "2015-10-21")}
{:id "something-could-have-happened"
:user_id (user->id :rasta)
:created_at (metabase.util/->Timestamp "1999-12-31")}
{:id "now"
:user_id (user->id :rasta)
:created_at (metabase.util/new-sql-timestamp)}]))
(first-session-for-user (user->id :rasta))))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment