userDAO

Package: machii_info_sample.model.user
I abstract data access for users
Method Summary
public userDAO init(string dsn)

I initialize a user.

public void create()

CRUD method

public void delete(numeric userID)

CRUD method

public userTO read(numeric userID)

CRUD method

public void update(userTO userData)

CRUD method

Method Detail
create

public void create( )

CRUD method

Parameters:

Code:

	<cffunction name="create" returntype="void" output="false" hint="CRUD method">
		<cfabort showerror="userDAO.create - This Method is Abstract and needs to be overridden">
	</cffunction> 

delete

public void delete( numeric userID )

CRUD method

Parameters:
numeric userID

Code:

	<cffunction name="delete" returntype="void" output="false" hint="CRUD method">
		<cfargument name="userID" type="numeric" required="true" hint="I am the ID of the database record to delete." />		
		<cfset userDelete = 0 >
		<cfquery name="userDelete" datasource="#variables.dsn#" >
			DELETE FROM users
			WHERE	userID = <cfqueryparam cfsqltype="CF_SQL_INTEGER" value="#arguments.userID#" >
		</cfquery> 		
	</cffunction> 

init

public userDAO init( string dsn )

I initialize a user.

Parameters:
string dsn

Code:

	<cffunction name="init" access="public" returntype="userDAO" output="false" displayname="User Constructor" hint="I initialize a user.">		
		<cfargument name="dsn" type="string" required="true" />
		<cfset variables.dsn = arguments.dsn />
		<cfreturn this />
	</cffunction> 

read

public userTO read( numeric userID )

CRUD method

Parameters:
numeric userID

Code:

	<cffunction name="read" access="public" returntype="machii_info_sample.model.user.userTO" output="false"  hint="CRUD method">
		<cfargument name="userID" type="numeric" required="true" hint="I am the ID of the database record to read." />		
		<cfset var userSelect = 0 />
		<cfset var userData = structNew() />
		<cfquery name="userSelect" datasource="#variables.dsn#" >
			select * from users
			where userid = <cfqueryparam cfsqltype="CF_SQL_INTEGER" value="#arguments.userid#" />
		</cfquery>
		<cfif userSelect.recordCount eq 1>
			<cfscript>
				userData.userid = userselect.userid; //setuserID(userSelect.userID);
				userData.username = userselect.username; //setUsername(userSelect.username);
				userData.firstname = userselect.firstname; // setFirstname(userSelect.firstName);
				userData.lastname = userselect.lastname; //setLastname(userSelect.lastName);
				userData.email = userselect.email; //setEmail(userSelect.email);
				userData.password = userselect.password; // setPassword(userSelect.password);			
				userData.password2 = userselect.password; // setPassword2(userSelect.password);			
				userData.company = userselect.company; // setCompany(userSelect.company);			
				userData.isAdmin = userselect.isAdmin; // setIsAdmin(userSelect.isAdmin);				
				return createObject("component", "machii_info_sample.model.user.userTO").init(argumentcollection=userData);
			</cfscript>			
		<cfelse>
			<cfthrow type="USER.MISSING" message="No such user" detail="userID=#arguments.userid#" />
		</cfif>
	</cffunction> 

update

public void update( userTO userData )

CRUD method

Parameters:
userTO userData

Code:

	<cffunction name="update" returntype="void" output="false" hint="CRUD method">
		<cfargument name="userData" type="machii_info_sample.model.user.userTO" required="yes" displayname="userData" hint="TO of user data" />				
		<cfset userUpdate = 0 >
		<cfquery name="userUpdate" datasource="#variables.dsn#" >
			UPDATE users
			SET		username = '#left(trim(arguments.userData.username),15)#',
					password = '#left(trim(arguments.userData.password),15)#',
					firstName = '#left(trim(arguments.userData.firstName),25)#',
					lastName = '#left(trim(arguments.userData.lastName),25)#',
					email = '#left(trim(arguments.userData.email),50)#',
					company = '#left(trim(arguments.userData.company),25)#',
					isAdmin = <cfqueryparam cfsqltype="CF_SQL_INTEGER" value="#arguments.userData.isAdmin#" >
			WHERE	userID = <cfqueryparam cfsqltype="CF_SQL_INTEGER" value="#arguments.userData.userID#" >
		</cfquery> 		 
	</cffunction>