Company Delete Endpoint done
This commit is contained in:
@ -26,6 +26,7 @@ func (c *CompanyUserController) URLMapping() {
|
||||
c.Mapping("GetAll", c.GetAll)
|
||||
c.Mapping("Put", c.Put)
|
||||
c.Mapping("Delete", c.Delete)
|
||||
c.Mapping("Delete", c.DeleteCompany)
|
||||
}
|
||||
|
||||
// Post ...
|
||||
@ -240,7 +241,6 @@ func (c *CompanyUserController) Delete() {
|
||||
c.ServeJSONError("Error deleting Company User")
|
||||
return
|
||||
}
|
||||
fmt.Println(userCompanyMapping)
|
||||
|
||||
err = models.DeleteUserCompanyMap(systemO, userCompanyMapping.ID)
|
||||
if err != nil {
|
||||
@ -250,3 +250,49 @@ func (c *CompanyUserController) Delete() {
|
||||
c.ServeJSONSuccess("Successfully deleted!")
|
||||
}
|
||||
}
|
||||
|
||||
// DeleteCompany ...
|
||||
// @Title Delete Company
|
||||
// @Description Delete the entire Company
|
||||
// @Success 200 {string} delete success!
|
||||
// @Failure 403 failed
|
||||
// @router /deletecompany [delete]
|
||||
func (c *CompanyUserController) DeleteCompany() {
|
||||
|
||||
if currentUser.Role != constants.RoleOwner {
|
||||
c.ServeJSONError("Must be Owner to delete a company")
|
||||
return
|
||||
}
|
||||
|
||||
systemDB := companydb.GetSystemDatabase()
|
||||
systemO, err := orm.NewOrmWithDB("postgres", "default", systemDB)
|
||||
|
||||
// first check how many users are left
|
||||
ucm, err := models.GetUserCompanyMapsByCompanyName(systemO, jwtSession.CompanyName)
|
||||
if err != nil {
|
||||
c.ServeJSONError("Error deleting User Company Relation")
|
||||
return
|
||||
}
|
||||
|
||||
for _, uc := range ucm {
|
||||
systemO.Begin()
|
||||
err = models.DeleteUserCompanyMap(systemO, uc.ID)
|
||||
if err != nil {
|
||||
c.ServeJSONError("Error deleting User Company Relation")
|
||||
systemO.Rollback()
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// Second check and delete the database
|
||||
err = companydb.DeleteDatabase(jwtSession.CompanyName)
|
||||
if err != nil {
|
||||
systemO.Rollback()
|
||||
c.ServeJSONError("Error deleting Company Database")
|
||||
return
|
||||
} else {
|
||||
systemO.Commit()
|
||||
c.ServeJSONSuccess("Successfully deleted!")
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user