convertGetProjectsApiResponse

mapper for get project
 avatar
unknown
dart
a year ago
4.0 kB
12
Indexable
 List<Project> convertGetProjectsApiResponse(Map<String, dynamic> response) {
    var projects = List<Project>.empty(growable: true);

    var data = response["data"];
    for (var project in data) {
      var members = List<User>.empty(growable: true);
      var subProjects = List<Project>.empty(growable: true);
      var milestones = List<Project>.empty(growable: true);
      var member = project['attachment'][members];
      member.forEach((member) {
        members.add(User(
          member['phid'],
        ));
      });
      project['subProjects'].forEach((sub) {
        subProjects.add(Project(
          sub['phid'],
          sub['imageUrl'],
          [],
          name: sub['name'],
          fullName: sub['name'],
          isGroup: sub['icon']['key'] == 'group',
          description: sub['description'] ?? "",
          isForRsp: sub['isForRsp'],
          isForDev: sub['isForDev'],
          isArchived: sub['isArchived'],
          isMilestone: sub['icon']['key'] == 'milestone' ? true : false,
          members: members,
          // sub['members'] != []
          //     ? sub['members'].forEach((member) {
          //         members.add(User(
          //           member['phid'],
          //         ));
          //       })
          //     : [],
          intId: sub['id'],
          depth: sub['depth'],
          viewPolicy: sub['viewPolicy'],
          editPolicy: sub['editPolicy'],
          startDate: sub['startDate'] != null
              ? _dateUtil.fromMilliseconds(sub['startDate'] * 1000)
              : null,
          endDate: sub['endDate'] != null
              ? _dateUtil.fromMilliseconds(sub['endDate'] * 1000)
              : null,
        ));
      });
      project['milestones'].forEach((miles) {
        milestones.add(Project(
          miles['phid'],
          miles['imageUrl'],
          [],
          name: miles['name'],
          fullName: miles['name'],
          isGroup: miles['icon']['key'] == 'group',
          description: miles['description'] ?? "",
          isForRsp: miles['isForRsp'],
          isForDev: miles['isForDev'],
          isArchived: miles['isArchived'],
          isMilestone: miles['icon']['key'] == 'milestone' ? true : false,
          // members:
          // miles['members'] != []
          //     ? miles['members'].forEach((member) {
          //         members.add(User(
          //           member['phid'],
          //         ));
          //       })
          //     : [],
          members: members,
          intId: miles['id'],
          depth: miles['depth'],
          viewPolicy: miles['viewPolicy'],
          editPolicy: miles['editPolicy'],
          startDate: miles['startDate'] != null
              ? _dateUtil.fromMilliseconds(miles['startDate'] * 1000)
              : null,
          endDate: miles['endDate'] != null
              ? _dateUtil.fromMilliseconds(miles['endDate'] * 1000)
              : null,
        ));
      });

      projects.add(
        Project(
          project['phid'],
          project['imageUrl'],
          [],
          name: project['name'],
          fullName: project['name'],
          isGroup: project['icon']['key'] == 'group',
          description: project['description'] ?? "",
          isForRsp: project['isForRsp'],
          isForDev: project['isForDev'],
          isArchived: project['isArchived'],
          isMilestone: project['icon']['key'] == 'milestone' ? true : false,
          members: members,
          intId: project['id'],
          depth: project['depth'],
          viewPolicy: project['viewPolicy'],
          editPolicy: project['editPolicy'],
          startDate: project['startDate'] != null
              ? _dateUtil.fromMilliseconds(project['startDate'] * 1000)
              : null,
          endDate: project['endDate'] != null
              ? _dateUtil.fromMilliseconds(project['endDate'] * 1000)
              : null,
          subProjects: subProjects,
        ),
      );
    }
    return projects;
  }
Editor is loading...
Leave a Comment