Skip to content
Snippets Groups Projects
Commit 3286c357 authored by Sarthak Shrivastava's avatar Sarthak Shrivastava
Browse files

Added support for actually adding user to organization

parent fdb59daa
No related branches found
No related tags found
No related merge requests found
......@@ -5,6 +5,7 @@ import Axios from 'axios';
const OrganizationDetails = ({token}) => {
const { orgId } = useParams();
const [organization, setOrganization] = useState(null);
const [type, setType] = useState('');
const navigate = useNavigate();
useEffect(() => {
const fetchOrganizationDetails = async () => {
......@@ -17,6 +18,7 @@ const OrganizationDetails = ({token}) => {
if (response.data.result === 'success') {
setOrganization(response.data.data);
setType(response.data.type);
} else {
console.error('Error fetching organization details');
navigate('/404');
......@@ -85,7 +87,7 @@ const OrganizationDetails = ({token}) => {
{/* Buttons at the bottom */}
<div className="button-container">
<button className="blue-button" onClick={handleRosterButtonClick}>Roster</button>
<button className="blue-button" onClick={handleRequestButtonClick}>Requests</button>
{(type === 'MANAGER' || type === 'OWNER') && <button className="blue-button" onClick={handleRequestButtonClick}>Requests</button>}
<button className="blue-button" onClick={handleItemsButtonClick}>Items</button>
<button className="blue-button" onClick={handleLocationButtonClick}>Locations</button>
<button className="dark-red-button" onClick={handleLeaveButtonClick}>Leave Organization</button>
......
......@@ -64,7 +64,6 @@ public class AuthController {
public @ResponseBody Map<String, String> verify(@RequestBody Map<String, Object> json)
{
Map<String, String> res = new HashMap<String, String>();
System.out.println(json.entrySet());
if (json.containsKey("jwt"))
{
Claims claim = JWT.decodeJWT((String) json.get("jwt")); //this will be a string
......
......@@ -57,7 +57,6 @@ public class ItemController {
public @ResponseBody Map<String, Object> getItemsToken(@RequestBody Map<String, Object> json)
{
Map<String, Object> response = new HashMap<>();
System.out.println(json.entrySet());
if (!json.containsKey("orgId") || !json.containsKey("jwt"))
{
response.put("result", "failure - bad request");
......@@ -154,14 +153,12 @@ public class ItemController {
public @ResponseBody Map<String, Object> deleteItemToken(@RequestBody Map<String, Object> json)
{
Map<String, Object> response = new HashMap<>();
System.out.println(json.entrySet());
if (!json.containsKey("orgId") || !json.containsKey("jwt") || !json.containsKey("itemId"))
{
response.put("result", "failure - bad request");
return response;
}
Map<String, Object> map = getUserOrg(json);
System.out.println(map.entrySet());
if (map.get("result").equals("success"))
{
Integer itemId;
......
......@@ -78,6 +78,17 @@ public class MyOrgRosterRepository implements OrgRosterRepository{
}
@Transactional
public Map<String, Object> addMember(Integer orgId, String memberEmail, OrganizationRoster.Type type)
{
String query = "INSERT INTO ORGANIZATION_ROSTER(user_email, organization_id, type) VALUES(:userEmail, :orgId, :type)";
Query nativeQuery = entityManager.createNativeQuery(query)
.setParameter("userEmail", memberEmail)
.setParameter("orgId", orgId)
.setParameter("type", type);
Map<String, Object> result = new HashMap<>();
return result;
}
@Transactional
public Map<String, Object> updateMember(Integer orgId, String memberEmail, OrganizationRoster.Type type)
{
......@@ -131,7 +142,6 @@ public class MyOrgRosterRepository implements OrgRosterRepository{
int updatedRows = promoteManagerNativeQuery.executeUpdate();
System.out.println("updated a random manager to be the owner, " + updatedRows);
if (updatedRows > 0) {
// Update owner_email in Organization table
String updateOwnerEmailQuery = "UPDATE organization SET owner_email = (SELECT user_email FROM organization_roster WHERE organization_id = :orgId AND type = 'OWNER') WHERE organization_id = :orgId";
......@@ -154,7 +164,6 @@ public class MyOrgRosterRepository implements OrgRosterRepository{
promoteMemberNativeQuery.setParameter("orgId", orgId);
int updatedRows = promoteMemberNativeQuery.executeUpdate();
System.out.println("updated a random member to be the owner, " + updatedRows);
if (updatedRows > 0) {
// Update owner_email in Organization table
String updateOwnerEmailQuery = "UPDATE organization SET owner_email = (SELECT user_email FROM organization_roster WHERE organization_id = :orgId AND type = 'OWNER') WHERE organization_id = :orgId";
......
......@@ -116,7 +116,6 @@ public class OrgRosterController {
// System.out.println(json.entrySet());
if (!json.containsKey("orgId") || !json.containsKey("newtype") || !json.containsKey("jwt") || !json.containsKey("memberEmail"))
{
System.out.println("thought there were wrong headers");
result.put("result", "failure bad request");
return result;
}
......
package com.example.accessingdatamysql.request;
import com.example.accessingdatamysql.myorg.OrganizationRoster;
import jakarta.persistence.EntityManager;
import jakarta.persistence.Query;
import jakarta.transaction.Transactional;
......@@ -27,15 +28,42 @@ public class CustomRequestRepository {
@Transactional
public Object updateRequest(Map<String, Object> json)
{
//this is basically just for join type requests
Integer requestId;
if (json.get("requestId") instanceof Integer)
requestId = (Integer) json.get("requestId");
else
requestId = Integer.parseInt((String) json.get("requestId"));
Integer orgId;
if (json.get("orgId") instanceof Integer)
orgId = (Integer) json.get("orgId");
else
orgId = Integer.parseInt((String) json.get("orgId"));
String nativeQuery = "UPDATE REQUEST r SET status = ?1 WHERE r.request_id = ?2";
Query query = entityManager.createNativeQuery(nativeQuery)
.setParameter(1, json.get("status"))
.setParameter(2, requestId);
query.executeUpdate();
// System.out.println(json.entrySet());
if (json.get("status").equals("ACCEPTED"))
{
String getQuery = "SELECT r.user_email FROM REQUEST r WHERE r.request_id = ?1";
Query getq = entityManager.createNativeQuery(getQuery)
.setParameter(1, requestId);
String userEmail = (String) getq.getSingleResult();
System.out.println(userEmail);
String insertQuery = "INSERT INTO ORGANIZATION_ROSTER(user_email, organization_id, type) VALUES(?1, ?2, ?3)";
Query inq = entityManager.createNativeQuery(insertQuery)
.setParameter(1, userEmail)
.setParameter(2, orgId)
.setParameter(3, "MEMBER");
String memberCount = "UPDATE ORGANIZATION o SET member_count = member_count + 1 WHERE o.organization_id = ?1";
Query memberQ = entityManager.createNativeQuery(memberCount)
.setParameter(1, orgId);
inq.executeUpdate();
//add the user as a member to the organization
memberQ.executeUpdate(); //update member count
}
return query.executeUpdate() > 0;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment