update usages of singleton
parent
9e32613f5c
commit
b4adebb691
|
@ -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 )
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
Loading…
Reference in New Issue