update usages of singleton

db4
Doug Coleman 2008-04-01 16:53:32 -05:00
parent 9e32613f5c
commit b4adebb691
3 changed files with 89 additions and 89 deletions

View File

@ -4,7 +4,7 @@ USING: arrays assocs db kernel math math.parser
sequences continuations sequences.deep sequences.lib sequences continuations sequences.deep sequences.lib
words namespaces tools.walker slots slots.private classes words namespaces tools.walker slots slots.private classes
mirrors classes.tuple combinators calendar.format symbols mirrors classes.tuple combinators calendar.format symbols
singleton ; classes.singleton ;
IN: db.types IN: db.types
HOOK: modifier-table db ( -- hash ) HOOK: modifier-table db ( -- hash )

View File

@ -1,42 +1,42 @@
! Copyright (C) 2008 Slava Pestov. ! Copyright (C) 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: db db.tuples db.types accessors USING: db db.tuples db.types accessors
http.server.auth.providers kernel continuations http.server.auth.providers kernel continuations
singleton ; classes.singleton ;
IN: http.server.auth.providers.db IN: http.server.auth.providers.db
user "USERS" user "USERS"
{ {
{ "username" "USERNAME" { VARCHAR 256 } +assigned-id+ } { "username" "USERNAME" { VARCHAR 256 } +assigned-id+ }
{ "realname" "REALNAME" { VARCHAR 256 } } { "realname" "REALNAME" { VARCHAR 256 } }
{ "password" "PASSWORD" { VARCHAR 256 } +not-null+ } { "password" "PASSWORD" { VARCHAR 256 } +not-null+ }
{ "email" "EMAIL" { VARCHAR 256 } } { "email" "EMAIL" { VARCHAR 256 } }
{ "ticket" "TICKET" { VARCHAR 256 } } { "ticket" "TICKET" { VARCHAR 256 } }
{ "profile" "PROFILE" FACTOR-BLOB } { "profile" "PROFILE" FACTOR-BLOB }
} define-persistent } define-persistent
: init-users-table user ensure-table ; : init-users-table user ensure-table ;
SINGLETON: users-in-db SINGLETON: users-in-db
: find-user ( username -- user ) : find-user ( username -- user )
<user> <user>
swap >>username swap >>username
select-tuple ; select-tuple ;
M: users-in-db get-user M: users-in-db get-user
drop drop
find-user ; find-user ;
M: users-in-db new-user M: users-in-db new-user
drop drop
[ [
dup username>> find-user [ dup username>> find-user [
drop f drop f
] [ ] [
dup insert-tuple dup insert-tuple
] if ] if
] with-transaction ; ] with-transaction ;
M: users-in-db update-user M: users-in-db update-user
drop update-tuple ; drop update-tuple ;

View File

@ -1,46 +1,46 @@
! Copyright (C) 2008 Slava Pestov. ! Copyright (C) 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: assocs accessors http.server.sessions.storage USING: assocs accessors http.server.sessions.storage
alarms kernel http.server db.tuples db.types singleton alarms kernel http.server db.tuples db.types math.parser
math.parser ; classes.singleton ;
IN: http.server.sessions.storage.db IN: http.server.sessions.storage.db
SINGLETON: sessions-in-db SINGLETON: sessions-in-db
TUPLE: session id namespace ; TUPLE: session id namespace ;
session "SESSIONS" session "SESSIONS"
{ {
{ "id" "ID" INTEGER +native-id+ } { "id" "ID" INTEGER +native-id+ }
{ "namespace" "NAMESPACE" FACTOR-BLOB } { "namespace" "NAMESPACE" FACTOR-BLOB }
} define-persistent } define-persistent
: init-sessions-table session ensure-table ; : init-sessions-table session ensure-table ;
: <session> ( id -- session ) : <session> ( id -- session )
session construct-empty session construct-empty
swap dup [ string>number ] when >>id ; swap dup [ string>number ] when >>id ;
M: sessions-in-db get-session ( id storage -- namespace/f ) M: sessions-in-db get-session ( id storage -- namespace/f )
drop drop
dup [ dup [
<session> <session>
select-tuple dup [ namespace>> ] when select-tuple dup [ namespace>> ] when
] when ; ] when ;
M: sessions-in-db update-session ( namespace id storage -- ) M: sessions-in-db update-session ( namespace id storage -- )
drop drop
<session> <session>
swap >>namespace swap >>namespace
update-tuple ; update-tuple ;
M: sessions-in-db delete-session ( id storage -- ) M: sessions-in-db delete-session ( id storage -- )
drop drop
<session> <session>
delete-tuple ; delete-tuple ;
M: sessions-in-db new-session ( namespace storage -- id ) M: sessions-in-db new-session ( namespace storage -- id )
drop drop
f <session> f <session>
swap >>namespace swap >>namespace
[ insert-tuple ] [ id>> number>string ] bi ; [ insert-tuple ] [ id>> number>string ] bi ;