Open bobbypriam opened 7 years ago
Okay, ini draft yang kita ajukan untuk v0.3.
Beberapa notable changes termasuk:
candidate
./pairings/{id}/media-sentiments
kita hilangkan dan menjadikannya embeddable field pada resource pairings
dengan nama sentimentsByMedia
. Endpoint /media/{id}/sentiments
juga di-merge jadi embeddable field pada resource media
dengan nama sentimentsOnPairing
. Total hanya akan ada 8 endpoint yang masing-masing berbentuk /<resource>
dan /<resource>/<id>
dari 4 entity utama, yaitu candidate
, pairing
, news
, dan media
.endpoints response type
---------------------------------------
/candidates: [Candidate]
/{id}: Candidate
embeddable:
- pairing: Pairing
endpoints response type
---------------------------------------
/pairings: [Pairing]
/{id}: Pairing
embeddable:
- candidates: PairingCandidates
- overallSentiments: PairingSentiment
- sentimentsByMedia: [PairingMediaSentiment]
endpoints response type
---------------------------------------
/news: [News]
/{id} News
embeddable:
- media: Media
- mentions: [Candidate]
- sentiments: [NewsSentiment]
searchable:
- mediaId
- candidateId
endpoints response type
---------------------------------------
/media: [Media]
/{id}: Media
embeddable:
- latestNews: [News]
- sentimentsOnPairings: [PairingMediaSentiment]
Note: embeddedFields of an entity are present only if the
entity are not embedded themselves.
// ------- Candidate -------
type Candidate {
id
...properties
...embeddedFields
}
// ------- Pairing -------
type Pairing {
id
...properties
...embeddedFields
}
type PairingCandidates {
cagub: Candidate
cawagub: Candidate
}
type PairingSentiment {
positiveNewsCount: Int
negativeNewsCount: Int
}
type PairingMediaSentiment {
media: Media
positiveNewsCount: Int
negativeNewsCount: Int
}
// ------- News -------
type News {
id
...properties
...embeddedFields
}
type NewsSentiment {
pairing: Pairing
type: String
confidentScore: Float
}
// ------- Media -------
type Media {
id
...properties
...embeddedFields
}
Dari spesifikasi di atas, ada beberapa perubahan:
searchable
dari news
, tadinya kita berniat menambahkan field untuk pencarian berdasarkan pairing_id
dan url
. Pencarian dengan pairing_id
agak redundan dengan candidate_id
, karena detail kandidat bisa di-embed
pada pairing
, maka kita hilangkan. Untuk url
juga sepertinya masih belum bisa disupport saat ini (lihat #131), jadinya untuk sementara kita hilangkan juga./stats
untuk mendapatkan statistik data pada Rojak saat ini. Data yang saat ini terpikirkan dapat diquery adalah news_count
, media_count
, total_sentiments_count
, positive_sentiments_count
, negative_sentiments_count
, oot_sentiments_count
.PR sedang otw, tinggal implemen yang /stats
, harusnya bisa besok malam ini 😄
Panduan:
rojak_schema_latest.sql
.Perubahan paling utama yaitu pemindahan asosiasi
news_sentiment
dari sebelumnyanews-candidate
menjadinews-pair_of_candidates
.Deliverable: spesifikasi API v0.3.