Skip to content

Commit 29e5e26

Browse files
committed
better naming, import qualified
1 parent cb88a7e commit 29e5e26

File tree

5 files changed

+24
-26
lines changed

5 files changed

+24
-26
lines changed

src/Database/Base.hs

+10-10
Original file line numberDiff line numberDiff line change
@@ -12,38 +12,38 @@ import Opaleye.Internal.Manipulation (Updater)
1212
type F a = Field a
1313

1414
-------------------------------------------------------------------------------
15-
data Entity a b c
15+
data EntityT a b c
1616
= Entity
1717
{ record :: a,
1818
recordCreatedAt :: b,
1919
recordUpdatedAt :: c
2020
}
2121

22-
$(makeAdaptorAndInstance "pEntity" ''Entity)
22+
$(makeAdaptorAndInstance "pEntity" ''EntityT)
2323

2424
-------------------------------------------------------------------------------
25-
type EntityData a =
26-
Entity
25+
type Entity a =
26+
EntityT
2727
a
2828
UTCTime
2929
UTCTime
3030

3131
type EntityWriteField a =
32-
Entity
32+
EntityT
3333
a
3434
(Maybe (F SqlTimestamptz))
3535
(Maybe (F SqlTimestamptz))
3636

3737
type EntityField a =
38-
Entity
38+
EntityT
3939
a
4040
(F SqlTimestamptz)
4141
(F SqlTimestamptz)
4242

4343
-------------------------------------------------------------------------------
4444
withTimestampFields ::
4545
a ->
46-
Entity
46+
EntityT
4747
a
4848
(TableFields (Maybe (F SqlTimestamptz)) (F SqlTimestamptz))
4949
(TableFields (Maybe (F SqlTimestamptz)) (F SqlTimestamptz))
@@ -55,15 +55,15 @@ withTimestampFields mapping =
5555
}
5656

5757
-------------------------------------------------------------------------------
58-
withTimestamp :: [row] -> [Entity row (Maybe timestamp) (Maybe timestamp)]
58+
withTimestamp :: [row] -> [EntityT row (Maybe timestamp) (Maybe timestamp)]
5959
withTimestamp = map f
6060
where
6161
f r = Entity {record = r, recordCreatedAt = Nothing, recordUpdatedAt = Nothing}
6262

6363
-------------------------------------------------------------------------------
6464
updateRecord ::
65-
Default Updater (Entity record t t) fieldsW =>
65+
Default Updater (EntityT record t t) fieldsW =>
6666
(record -> record) ->
67-
Entity record t t ->
67+
EntityT record t t ->
6868
fieldsW
6969
updateRecord f = updateEasy (\r -> r {record = f (record r)})

src/Database/Model.hs

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import Opaleye.Internal.Manipulation (Updater)
1111

1212
-------------------------------------------------------------------------------
1313
data UserT a b c d
14-
= UserRecord
14+
= User
1515
{ userId :: a,
1616
userEmail :: b,
1717
userPasswordHash :: c,
@@ -20,8 +20,8 @@ data UserT a b c d
2020

2121
$(makeAdaptorAndInstance "pUser" ''UserT)
2222

23-
type UserData =
24-
EntityData
23+
type User =
24+
Entity
2525
( UserT
2626
Int
2727
Text
@@ -49,7 +49,7 @@ type UserField =
4949
userTable :: Table UserWriteField UserField
5050
userTable =
5151
table "users" . pEntity . withTimestampFields $
52-
pUser UserRecord
52+
pUser User
5353
{ userId = tableField "id",
5454
userEmail = tableField "email",
5555
userPasswordHash = tableField "password_hash",

src/Database/User.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ insertUser (userEmail, userPasswordHash, userName) =
1818
{ iTable = userTable,
1919
iRows =
2020
withTimestamp
21-
[ UserRecord
21+
[ User
2222
{ userId = Nothing,
2323
userEmail = toFields userEmail,
2424
userPasswordHash = toFields userPasswordHash,

src/Graphql.hs

-2
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,7 @@ import Data.Text (Text)
2222
import qualified Data.Text as T
2323
import qualified Data.Text.Lazy as LT
2424
import Data.Time.Clock (getCurrentTime)
25-
import Database.Model
2625
import Database.PostgreSQL.Simple (Connection)
27-
import Database.User
2826
import GHC.Int (Int64)
2927
import qualified Opaleye
3028
import Opaleye (FromFields, Insert, Select, Update)

src/Graphql/Resolver/User.hs

+9-9
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@ import qualified Data.Text as T
1515
import qualified Data.Text.Lazy as LT
1616
import Data.Time.Clock (getCurrentTime)
1717
import Database.Base
18-
import Database.Model
18+
import qualified Database.Model as DB
1919
import Database.PostgreSQL.Simple (Connection)
2020
import Database.User
2121
import GHC.Int (Int64)
2222
import Graphql
2323

2424
-------------------------------------------------------------------------------
25-
userResolver :: GraphQL o => UserData -> Object o User
25+
userResolver :: GraphQL o => DB.User -> Object o User
2626
userResolver user =
27-
let UserRecord {userId, userEmail, userName} = record user
27+
let DB.User {userId, userEmail, userName} = record user
2828
in return User
2929
{ id = pure userId,
3030
email = pure userEmail,
@@ -36,19 +36,19 @@ userResolver user =
3636
-------------------------------------------------------------------------------
3737
loginResolver :: GraphQL o => LoginArgs -> Object o Session
3838
loginResolver LoginArgs {email, password} = do
39-
res :: [UserData] <- runSelect $ findUserByEmail email
39+
res :: [DB.User] <- runSelect $ findUserByEmail email
4040
case res of
41-
[user] | validateHashedPassword (userPasswordHash . record $ user) password -> do
41+
[user] | validateHashedPassword (DB.userPasswordHash . record $ user) password -> do
4242
time <- liftIO getCurrentTime
4343
secret <- lift $ asks (jwtSecret . config)
44-
let jwt = makeJWT time secret (userId . record $ user)
44+
let jwt = makeJWT time secret (DB.userId . record $ user)
4545
return Session {token = pure jwt, user = userResolver user}
4646
_ -> failRes "Wrong email or password"
4747

4848
-------------------------------------------------------------------------------
4949
registerResolver :: RegisterArgs -> Object MUTATION Session
5050
registerResolver RegisterArgs {email, password, name} = do
51-
res :: [UserData] <- runSelect $ findUserByEmail email
51+
res :: [DB.User] <- runSelect $ findUserByEmail email
5252
case res of
5353
_ : _ -> failRes "This email is already taken"
5454
[] -> do
@@ -66,8 +66,8 @@ myUserInfoResolver = do
6666
changePasswordResolver :: ChangePasswordArgs -> Value MUTATION Bool
6767
changePasswordResolver ChangePasswordArgs {oldPassword, newPassword} = do
6868
myUserId <- requireAuthorized
69-
userData :: UserData <- runSelectOne (findUserByID myUserId) "Invalid user"
70-
if validateHashedPassword (userPasswordHash . record $ userData) oldPassword
69+
userData :: DB.User <- runSelectOne (findUserByID myUserId) "Invalid user"
70+
if validateHashedPassword (DB.userPasswordHash . record $ userData) oldPassword
7171
then do
7272
ph <- liftIO $ hashPassword newPassword
7373
runUpdate $ updateUserPassword myUserId ph

0 commit comments

Comments
 (0)