2019-11-04 10:03:49 +01:00
|
|
|
package eu.dnetlib.uoamonitorservice.dao;
|
|
|
|
|
|
|
|
import eu.dnetlib.uoamonitorservice.entities.Stakeholder;
|
2024-03-06 00:48:31 +01:00
|
|
|
import org.springframework.data.mongodb.repository.MongoRepository;
|
|
|
|
import org.springframework.stereotype.Repository;
|
2019-11-04 10:03:49 +01:00
|
|
|
|
|
|
|
import java.util.List;
|
2024-03-08 19:55:51 +01:00
|
|
|
import java.util.Optional;
|
2019-11-04 10:03:49 +01:00
|
|
|
|
2024-03-06 00:48:31 +01:00
|
|
|
@Repository
|
|
|
|
public interface StakeholderDAO extends MongoRepository<Stakeholder, String> {
|
2019-11-04 10:03:49 +01:00
|
|
|
List<Stakeholder> findAll();
|
1. Stakeholder.java: Create constructor and copy constructor & change getters-setters for 'isDeafult', 'isPublic' and 'isActive' fields.
2. Topic.java: Create constructor and copy constructor & change getters-setters for 'isPublic' and 'isActive' fields.
3. Category.java: Create constructor and copy constructor & change getters-setters for 'isOverview, 'isPublic' and 'isActive' fields & remove field 'description'.
4. SubCategory.java: Create constructor and copy constructor & change getters-setters for 'isPublic' and 'isActive' fields & remove field 'description' &
make charts and numbers (List) generic (String or Indicator).
5. Indicator.java: Change getters-setters for 'indicatorPaths', 'isPublic' and 'isActive' fields & create method: public boolean hasType(String str), to check if "chart" or "number".
6. IndicatorPath.java: Add fields in schema (chartObject, parameters, filters) & add in enum IndicatorPathType types: pie, line, image.
7. MongoDBStakeholderDAO.java & StakeholderDAO.java: Add method: Stakeholder findByAlias(String Alias)
8. StakeholderController.java:
a. Add method: public Stakeholder setIndicatorsForStakeholder(Stakeholder stakeholder) to replace indicator ids with Indicator objects
(used by: getAllStakeholders, getAllDefaultStakeholders, getAllRealStakeholders, getStakeholder (by alias))
b. Add method: public Stakeholder getStakeholder(@PathVariable("alias") String alias) - /stakeholder/{alias}
c. Add method: public Stakeholder saveStakeholder(@RequestBody Stakeholder stakeholder) - /stakeholder/save
d. Add method: public boolean deleteIndicator(...) - /{stakeholder}/{topic}/{category}/{subcategory}/indicator/{id}
e. Add method: public Indicator saveIndicator(...) - /{stakeholder}/{topic}/{category}/{subcategory}/indicator/save (in body send Indicator object)
2019-11-11 17:38:36 +01:00
|
|
|
List<Stakeholder> findByType(String Type);
|
2019-11-04 10:03:49 +01:00
|
|
|
|
2019-12-19 16:04:25 +01:00
|
|
|
List<Stakeholder> findByDefaultId(String DefaultId);
|
|
|
|
List<Stakeholder> findByDefaultIdAndType(String DefaultId, String Type);
|
|
|
|
|
|
|
|
List<Stakeholder> findByDefaultIdNot(String DefaultId);
|
|
|
|
List<Stakeholder> findByDefaultIdNotAndType(String DefaultId, String Type);
|
1. Stakeholder.java: Create constructor and copy constructor & change getters-setters for 'isDeafult', 'isPublic' and 'isActive' fields.
2. Topic.java: Create constructor and copy constructor & change getters-setters for 'isPublic' and 'isActive' fields.
3. Category.java: Create constructor and copy constructor & change getters-setters for 'isOverview, 'isPublic' and 'isActive' fields & remove field 'description'.
4. SubCategory.java: Create constructor and copy constructor & change getters-setters for 'isPublic' and 'isActive' fields & remove field 'description' &
make charts and numbers (List) generic (String or Indicator).
5. Indicator.java: Change getters-setters for 'indicatorPaths', 'isPublic' and 'isActive' fields & create method: public boolean hasType(String str), to check if "chart" or "number".
6. IndicatorPath.java: Add fields in schema (chartObject, parameters, filters) & add in enum IndicatorPathType types: pie, line, image.
7. MongoDBStakeholderDAO.java & StakeholderDAO.java: Add method: Stakeholder findByAlias(String Alias)
8. StakeholderController.java:
a. Add method: public Stakeholder setIndicatorsForStakeholder(Stakeholder stakeholder) to replace indicator ids with Indicator objects
(used by: getAllStakeholders, getAllDefaultStakeholders, getAllRealStakeholders, getStakeholder (by alias))
b. Add method: public Stakeholder getStakeholder(@PathVariable("alias") String alias) - /stakeholder/{alias}
c. Add method: public Stakeholder saveStakeholder(@RequestBody Stakeholder stakeholder) - /stakeholder/save
d. Add method: public boolean deleteIndicator(...) - /{stakeholder}/{topic}/{category}/{subcategory}/indicator/{id}
e. Add method: public Indicator saveIndicator(...) - /{stakeholder}/{topic}/{category}/{subcategory}/indicator/save (in body send Indicator object)
2019-11-11 17:38:36 +01:00
|
|
|
|
2024-03-12 23:20:55 +01:00
|
|
|
List<Stakeholder> findByTopicsContaining(String topic);
|
2020-05-18 11:17:05 +02:00
|
|
|
|
2024-03-08 19:55:51 +01:00
|
|
|
Optional<Stakeholder> findById(String Id);
|
|
|
|
Optional<Stakeholder> findByAlias(String Alias);
|
2019-11-04 10:03:49 +01:00
|
|
|
|
2019-11-19 14:05:43 +01:00
|
|
|
void delete(String Id);
|
|
|
|
|
2019-11-04 10:03:49 +01:00
|
|
|
Stakeholder save(Stakeholder stakeholder);
|
|
|
|
}
|