From 5468a9c98b4665fbea2c3586f1f817d76ccec50b Mon Sep 17 00:00:00 2001
From: varsha <varshakumari370@gmail.com>
Date: Thu, 3 Nov 2022 18:54:40 +0530
Subject: [PATCH] fixed presetation count  issues

---
 server/src/controllers/userProfile.ts              | 14 +++-----------
 .../controllers/verifiableCredentialsController.ts | 10 +++++++---
 server/src/models/CreadSchema.ts                   |  5 +++++
 3 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/server/src/controllers/userProfile.ts b/server/src/controllers/userProfile.ts
index 4d9d835..896a25c 100644
--- a/server/src/controllers/userProfile.ts
+++ b/server/src/controllers/userProfile.ts
@@ -11,17 +11,9 @@ const fetchUserDetail = async (req: Request, res: Response, next: NextFunction)
     logger.info('profileCtrl:: fetchUserDetail() method start..');
     const { data } = req.body.hypersign;
     const orgsCount = await OrgModel.countDocuments({ userDid: data.id });
-    let schemasCount = await SchemaModel.countDocuments({ primaryDid: data.id });
-    // for backward compatibility
-    if (schemasCount === 0) {
-      schemasCount = await SchemaModel.countDocuments({ did: data.id });
-    }
-    let templatesCount = await PresentationModel.countDocuments({ primaryDid: data.id });
-    // for backward compatibility
-    if (templatesCount === 0) {
-      templatesCount = await PresentationModel.countDocuments({ templateOwnerDid: data.id });
-    }
-    const credentialsCount = await CredentialModel.countDocuments({ issuerDid: data.id });
+    const schemasCount = await SchemaModel.countDocuments({ primaryDid: data.id });
+    const templatesCount = await PresentationModel.countDocuments({ primaryDid: data.id });
+    const credentialsCount = await CredentialModel.countDocuments({ primaryDid: data.id });
     logger.info('profileCtrl:: fetchUserDetail() method ends...');
     return next(ApiResponse.success({ orgsCount, schemasCount, templatesCount, credentialsCount }));
   } catch (e) {
diff --git a/server/src/controllers/verifiableCredentialsController.ts b/server/src/controllers/verifiableCredentialsController.ts
index 61107e7..97c374a 100644
--- a/server/src/controllers/verifiableCredentialsController.ts
+++ b/server/src/controllers/verifiableCredentialsController.ts
@@ -13,7 +13,10 @@ const setCredentialStatus = async (req: Request, res: Response, next: NextFuncti
 
     const id = req.params.id;
     if (!req.body.credStatus) {
-      const { issuerDid, subjectDid, schemaId } = req.body.vc;
+      const vc = req.body.vc;
+      const issuerDid = vc.issuer;
+      const subjectDid = vc.credentialSubject.id;
+      const schemaId = vc.credentialSchema.id;
       const credObj = await creadSchema.findOneAndUpdate(
         { _id: id },
         {
@@ -80,7 +83,7 @@ const issueCredential = async (req: Request, res: Response, next: NextFunction)
     logger.info('==========CredController ::issueCredential Starts ================');
     const { QR_DATA, hypersign } = req.body;
     const { issuerDid, subjectDid, schemaId, orgDid, expirationDate } = QR_DATA.data;
-    QR_DATA.data.issuerDid = hypersign.data.id;
+    // QR_DATA.data.issuerDid = hypersign.data.id;
 
     const creadObj = await creadSchema.create({
       issuerDid,
@@ -90,6 +93,7 @@ const issueCredential = async (req: Request, res: Response, next: NextFunction)
       createdAt: new Date(),
       orgDid,
       expiryDate: new Date(expirationDate),
+      primaryDid: hypersign.data.id,
     });
     QR_DATA.expirationDate = new Date(expirationDate);
     QR_DATA.serviceEndpoint = `${WALLET_WEB_HOOK_CREAD}/${creadObj._id}`;
@@ -126,7 +130,7 @@ const getCredentialList = async (req: Request, res: Response, next: NextFunction
 
     const { hypersign } = req.body;
     const orgDid = req.params.orgDid;
-    const credList = await creadSchema.find({ issuerDid: hypersign.data.id, orgDid }).sort({ createdAt: -1 });
+    const credList = await creadSchema.find({ orgDid }).sort({ createdAt: -1 });
     logger.info('==========CredController ::getCredentialList Ends ================');
     return next(ApiResponse.success({ credList }));
   } catch (error) {
diff --git a/server/src/models/CreadSchema.ts b/server/src/models/CreadSchema.ts
index e7f9d6e..f4d6f2f 100644
--- a/server/src/models/CreadSchema.ts
+++ b/server/src/models/CreadSchema.ts
@@ -10,6 +10,7 @@ export interface ICreadSchema extends Document {
   vc_id: string;
   orgDid: string;
   expiryDate: Date;
+  primaryDid: string;
 }
 
 export const creadSchema = new Schema({
@@ -44,5 +45,9 @@ export const creadSchema = new Schema({
     type: Date,
     required: true,
   },
+  primaryDid: {
+    type: String,
+    required: true,
+  },
 });
 export default mongoose.model<ICreadSchema>('CreadSchema', creadSchema);