Compare commits
	
		
			2 Commits
		
	
	
		
			dfa0c52247
			...
			a50f9ab69a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| a50f9ab69a | |||
| 8ce49202e0 | 
							
								
								
									
										139
									
								
								modules/api/hightlight/category.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										139
									
								
								modules/api/hightlight/category.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,139 @@
 | 
				
			|||||||
 | 
					import  mysql.connector         as      mariadb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from	bottle			import	request
 | 
				
			||||||
 | 
					from    config                  import  database
 | 
				
			||||||
 | 
					from	scripts			import	loggorilla
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class category:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __init__(self):
 | 
				
			||||||
 | 
					        self.db_main	= mariadb.connect(**database.db_main)
 | 
				
			||||||
 | 
					        self.cursor	= self.db_main.cursor(dictionary=True)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def add(self, params):
 | 
				
			||||||
 | 
					        APIADDR         = "/api/highlight/category/add"
 | 
				
			||||||
 | 
					        response        = {}
 | 
				
			||||||
 | 
					        loggorilla.prcss(APIADDR, "Define Models")
 | 
				
			||||||
 | 
					        title		= params["title"	]
 | 
				
			||||||
 | 
					        desc		= params["desc"		]
 | 
				
			||||||
 | 
					        background	= params["background"	]
 | 
				
			||||||
 | 
					        illustration	= params["illustration"	]
 | 
				
			||||||
 | 
					        self.cursor.execute("BEGIN;")
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            loggorilla.prcss(APIADDR, "Activity: Insert")
 | 
				
			||||||
 | 
					            self.cursor.execute("INSERT INTO `highlight_category` VALUES (DEFAULT, %s, %s, %s, %s ) ;", (title, desc, background, illustration) )
 | 
				
			||||||
 | 
					            loggorilla.prcss(APIADDR, "Set Response")
 | 
				
			||||||
 | 
					            response["status"   ] = "success"
 | 
				
			||||||
 | 
					            response["desc"     ] = "data added"
 | 
				
			||||||
 | 
					        except Exception as e:
 | 
				
			||||||
 | 
					            self.cursor.execute("ROLLBACK;")
 | 
				
			||||||
 | 
					            loggorilla.error(APIADDR, str(e) )
 | 
				
			||||||
 | 
					            loggorilla.prcss(APIADDR, "Set Response")
 | 
				
			||||||
 | 
					            response["status"	] = "failed"
 | 
				
			||||||
 | 
					            response["desc"	] = "Internal Server Error. Please contact us if you still have an error."
 | 
				
			||||||
 | 
					        finally:
 | 
				
			||||||
 | 
					            self.cursor.execute("COMMIT;")
 | 
				
			||||||
 | 
					            self.cursor.close()
 | 
				
			||||||
 | 
					            self.db_main.close()
 | 
				
			||||||
 | 
					        return response
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def list(self, params):
 | 
				
			||||||
 | 
					        APIADDR         = "/api/highlight/category/list"
 | 
				
			||||||
 | 
					        response        = {}
 | 
				
			||||||
 | 
					        self.cursor.execute("BEGIN;")
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            self.cursor.execute("SELECT * FROM `highlight_category`;")
 | 
				
			||||||
 | 
					            ls = self.cursor.fetchall()
 | 
				
			||||||
 | 
					            loggorilla.prcss(APIADDR, "Set Response")
 | 
				
			||||||
 | 
					            response["status"   ] = "success"
 | 
				
			||||||
 | 
					            response["desc"     ] = "data collected"
 | 
				
			||||||
 | 
					            response["data"     ] = ls
 | 
				
			||||||
 | 
					        except Exception as e:
 | 
				
			||||||
 | 
					            self.cursor.execute("ROLLBACK;")
 | 
				
			||||||
 | 
					            loggorilla.error(APIADDR, str(e) )
 | 
				
			||||||
 | 
					            loggorilla.prcss(APIADDR, "Set Response")
 | 
				
			||||||
 | 
					            response["status"	] = "failed"
 | 
				
			||||||
 | 
					            response["desc"	] = "Internal Server Error. Please contact us if you still have an error."
 | 
				
			||||||
 | 
					        finally:
 | 
				
			||||||
 | 
					            self.cursor.execute("COMMIT;")
 | 
				
			||||||
 | 
					            self.cursor.close()
 | 
				
			||||||
 | 
					            self.db_main.close()
 | 
				
			||||||
 | 
					        return response
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    def detail(self, params):
 | 
				
			||||||
 | 
					        APIADDR         = "/api/highlight/category/detail"
 | 
				
			||||||
 | 
					        response        = {}
 | 
				
			||||||
 | 
					        loggorilla.prcss(APIADDR, "Define Models")
 | 
				
			||||||
 | 
					        id		= params["id"	]
 | 
				
			||||||
 | 
					        self.cursor.execute("BEGIN;")
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            self.cursor.execute("SELECT * FROM `highlight_category` WHERE `id` = %s ; ", (id,) )
 | 
				
			||||||
 | 
					            d = self.cursor.fetchone()
 | 
				
			||||||
 | 
					            loggorilla.prcss(APIADDR, "Set Response")
 | 
				
			||||||
 | 
					            response["status"   ] = "success"
 | 
				
			||||||
 | 
					            response["desc"     ] = "data collected"
 | 
				
			||||||
 | 
					            response["data"     ] = d
 | 
				
			||||||
 | 
					        except Exception as e:
 | 
				
			||||||
 | 
					            self.cursor.execute("ROLLBACK;")
 | 
				
			||||||
 | 
					            loggorilla.error(APIADDR, str(e) )
 | 
				
			||||||
 | 
					            loggorilla.prcss(APIADDR, "Set Response")
 | 
				
			||||||
 | 
					            response["status"	] = "failed"
 | 
				
			||||||
 | 
					            response["desc"	] = "Internal Server Error. Please contact us if you still have an error."
 | 
				
			||||||
 | 
					        finally:
 | 
				
			||||||
 | 
					            self.cursor.execute("COMMIT;")
 | 
				
			||||||
 | 
					            self.cursor.close()
 | 
				
			||||||
 | 
					            self.db_main.close()
 | 
				
			||||||
 | 
					        return response
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def edit(self, params):
 | 
				
			||||||
 | 
					        APIADDR         = "/api/highlight/category/edit"
 | 
				
			||||||
 | 
					        response        = {}
 | 
				
			||||||
 | 
					        loggorilla.prcss(APIADDR, "Define Models")
 | 
				
			||||||
 | 
					        id		= params["id"		]
 | 
				
			||||||
 | 
					        title		= params["title"	]
 | 
				
			||||||
 | 
					        desc		= params["desc"		]
 | 
				
			||||||
 | 
					        background	= params["background"	]
 | 
				
			||||||
 | 
					        illustration	= params["illustration"	]
 | 
				
			||||||
 | 
					        self.cursor.execute("BEGIN;")
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            loggorilla.prcss(APIADDR, "Activity: Update")
 | 
				
			||||||
 | 
					            self.cursor.execute("UPDATE `highlight_category` SET `title` = %s, `desc` = %s, `background` = %s, `illustration` = %s WHERE `id` = %s ; ", (title, desc, background, illustration, id) )
 | 
				
			||||||
 | 
					            loggorilla.prcss(APIADDR, "Set Response")
 | 
				
			||||||
 | 
					            response["status"   ] = "success"
 | 
				
			||||||
 | 
					            response["desc"     ] = "data updated"
 | 
				
			||||||
 | 
					        except Exception as e:
 | 
				
			||||||
 | 
					            self.cursor.execute("ROLLBACK;")
 | 
				
			||||||
 | 
					            loggorilla.error(APIADDR, str(e) )
 | 
				
			||||||
 | 
					            loggorilla.prcss(APIADDR, "Set Response")
 | 
				
			||||||
 | 
					            response["status"	] = "failed"
 | 
				
			||||||
 | 
					            response["desc"	] = "Internal Server Error. Please contact us if you still have an error."
 | 
				
			||||||
 | 
					        finally:
 | 
				
			||||||
 | 
					            self.cursor.execute("COMMIT;")
 | 
				
			||||||
 | 
					            self.cursor.close()
 | 
				
			||||||
 | 
					            self.db_main.close()
 | 
				
			||||||
 | 
					        return response
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def remove(self, params):
 | 
				
			||||||
 | 
					        APIADDR         = "/api/highlight/category/remove"
 | 
				
			||||||
 | 
					        response        = {}
 | 
				
			||||||
 | 
					        loggorilla.prcss(APIADDR, "Define Models")
 | 
				
			||||||
 | 
					        id		= params["id"		]
 | 
				
			||||||
 | 
					        self.cursor.execute("BEGIN;")
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            loggorilla.prcss(APIADDR, "Activity: Remove")
 | 
				
			||||||
 | 
					            self.cursor.execute("DELETE FROM `highlight_category` WHERE `id` = %s ; ", (id,) )
 | 
				
			||||||
 | 
					            loggorilla.prcss(APIADDR, "Set Response")
 | 
				
			||||||
 | 
					            response["status"   ] = "success"
 | 
				
			||||||
 | 
					            response["desc"     ] = "data removed"
 | 
				
			||||||
 | 
					        except Exception as e:
 | 
				
			||||||
 | 
					            self.cursor.execute("ROLLBACK;")
 | 
				
			||||||
 | 
					            loggorilla.error(APIADDR, str(e) )
 | 
				
			||||||
 | 
					            loggorilla.prcss(APIADDR, "Set Response")
 | 
				
			||||||
 | 
					            response["status"	] = "failed"
 | 
				
			||||||
 | 
					            response["desc"	] = "Internal Server Error. Please contact us if you still have an error."
 | 
				
			||||||
 | 
					        finally:
 | 
				
			||||||
 | 
					            self.cursor.execute("COMMIT;")
 | 
				
			||||||
 | 
					            self.cursor.close()
 | 
				
			||||||
 | 
					            self.db_main.close()
 | 
				
			||||||
 | 
					        return response
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										64
									
								
								sql/highlight.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								sql/highlight.sql
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,64 @@
 | 
				
			|||||||
 | 
					-- README
 | 
				
			||||||
 | 
					-- idx_ = index
 | 
				
			||||||
 | 
					-- fk_  = foreign
 | 
				
			||||||
 | 
					-- Create an index for fast lookups
 | 
				
			||||||
 | 
					-- Defining constraints separately for better readability & maintainability
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Item table
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					create table if not exists `catalog_item` (
 | 
				
			||||||
 | 
						`id`			int(11)			not null auto_increment primary key,
 | 
				
			||||||
 | 
						name 			varchar(36) 	not null
 | 
				
			||||||
 | 
					) engine=InnoDB default charset=utf8mb4;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Main table
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					create table if not exists `highlight_category` (
 | 
				
			||||||
 | 
						`id`			int(11)			not null auto_increment primary key,
 | 
				
			||||||
 | 
						`title`			longtext		not null,
 | 
				
			||||||
 | 
						`desc`			longtext		default null,
 | 
				
			||||||
 | 
						`background`	longtext		default null,
 | 
				
			||||||
 | 
						`illustration`	longtext		default null
 | 
				
			||||||
 | 
					) engine=InnoDB default charset=utf8mb4;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Bridge table
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					create table if not exists `highlight_<item>` (
 | 
				
			||||||
 | 
						`id`			int(11)			not null auto_increment primary key,
 | 
				
			||||||
 | 
						`<fk>`			int(11)			not null,
 | 
				
			||||||
 | 
						`category`		int(11)			not null,
 | 
				
			||||||
 | 
						key				`idx_<fk>`		(`<fk>`),
 | 
				
			||||||
 | 
						key				`idx_category`	(`category`),
 | 
				
			||||||
 | 
						constraint		`highlight_<item>_fk_<fk>`
 | 
				
			||||||
 | 
							foreign key (`<fk>`) references `<table>` (`<pk>`)
 | 
				
			||||||
 | 
							on update cascade
 | 
				
			||||||
 | 
							on delete cascade,
 | 
				
			||||||
 | 
						constraint		`highlight_videdu_fk_category`
 | 
				
			||||||
 | 
							foreign key (`category`) references `highlight_category` (`id`)
 | 
				
			||||||
 | 
							on update cascade
 | 
				
			||||||
 | 
							on delete cascade
 | 
				
			||||||
 | 
					) engine=InnoDB default charset=utf8mb4;
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- <item> 	= Your reference module name	: "catalog"			[2]
 | 
				
			||||||
 | 
					-- <fk> 	= Your FK field name 			: "item"			[5]
 | 
				
			||||||
 | 
					-- <table> 	= Your reference table name 	: "catalog_item"	[1]
 | 
				
			||||||
 | 
					-- <pk> 	= Your reference table PK 		: "id"				[1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					create table if not exists `highlight_catalog` (
 | 
				
			||||||
 | 
						`id`			int(11)			not null auto_increment primary key,
 | 
				
			||||||
 | 
						`item`			int(11)			not null,
 | 
				
			||||||
 | 
						`category`		int(11)			not null,
 | 
				
			||||||
 | 
						key				`idx_item`		(`item`),
 | 
				
			||||||
 | 
						key				`idx_category`	(`category`),
 | 
				
			||||||
 | 
						constraint		`highlight_catalog_fk_item`
 | 
				
			||||||
 | 
							foreign key (`item`) references `catalog_item` (`id`)
 | 
				
			||||||
 | 
							on update cascade
 | 
				
			||||||
 | 
							on delete cascade,
 | 
				
			||||||
 | 
						constraint		`highlight_videdu_fk_category`
 | 
				
			||||||
 | 
							foreign key (`category`) references `highlight_category` (`id`)
 | 
				
			||||||
 | 
							on update cascade
 | 
				
			||||||
 | 
							on delete cascade
 | 
				
			||||||
 | 
					) engine=InnoDB default charset=utf8mb4;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user