Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

student profile get method completed #165

Merged
merged 4 commits into from
Oct 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion api/geo_data.bal
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ public isolated service class AddressData {
}
}

isolated resource function get street_address() returns string {
isolated resource function get street_address() returns string? {
lock {
return self.address.street_address;
}
Expand Down
59 changes: 45 additions & 14 deletions api/main.bal
Original file line number Diff line number Diff line change
Expand Up @@ -5498,9 +5498,8 @@ AND p.organization_id IN (
isolated resource function get persons(int? organization_id, int? avinya_type_id) returns PersonData[]|error? {
stream<Person, error?> persons_data;

if (organization_id != null && avinya_type_id != null) {

lock {
if(organization_id != null && organization_id != -1 && avinya_type_id !=null){
lock {
persons_data = db_client->query(
`SELECT *
from person p
Expand All @@ -5513,6 +5512,22 @@ AND p.organization_id IN (
);`);
}

} else if (organization_id != null && organization_id ==-1 && avinya_type_id != null) {

lock {
persons_data = db_client->query(
`SELECT *
from person p
where
p.avinya_type_id = ${avinya_type_id} and
p.organization_id IN(
Select child_org_id
from parent_child_organization pco
);`);
}
} else {
return error("Provide non-null values for both 'organization_id' and 'avinya_type_id'.");
}
PersonData[] personDatas = [];

check from Person person_data_record in persons_data
Expand All @@ -5525,9 +5540,6 @@ AND p.organization_id IN (

check persons_data.close();
return personDatas;
} else {
return error("Provide non-null values for both 'organization_id' and 'avinya_type_id'.");
}

}

Expand All @@ -5539,7 +5551,8 @@ AND p.organization_id IN (
}
}

remote function update_person(Person person,Address? permanent_address,Address? mailing_address) returns PersonData|error? {
remote function update_person(Person person,Address? permanent_address,City? permanent_address_city,Address? mailing_address,City? mailing_address_city) returns PersonData|error? {


//starting the transaction
boolean first_db_transaction_fail = false;
Expand All @@ -5554,6 +5567,7 @@ AND p.organization_id IN (

transaction {


int permanent_address_id = permanent_address?.id ?: 0;

Address|error? permanent_address_raw = db_client->queryRow(
Expand All @@ -5565,11 +5579,14 @@ AND p.organization_id IN (
if (permanent_address_raw is Address) {
io:println("Permanent Address is already exists!");

if(permanent_address != null && permanent_address?.street_address != null &&
permanent_address_city !=null && permanent_address_city?.id !=null) {

permanent_address_res = check db_client->execute(
`UPDATE address SET
street_address = ${permanent_address?.street_address},
phone = ${permanent_address?.phone},
city_id = ${permanent_address?.city_id}
city_id = ${permanent_address_city?.id}
WHERE id = ${permanent_address_id};`);

permanent_address_insert_id = permanent_address_id;
Expand All @@ -5578,9 +5595,13 @@ AND p.organization_id IN (
first_db_transaction_fail = true;
io:println("Unable to update permanent address record");
}
}

}else{

if(permanent_address != null && permanent_address?.street_address != null &&
permanent_address_city !=null && permanent_address_city?.id !=null){

permanent_address_res = check db_client->execute(
`INSERT INTO address(
street_address,
Expand All @@ -5589,16 +5610,18 @@ AND p.organization_id IN (
) VALUES(
${permanent_address?.street_address},
${permanent_address?.phone},
${permanent_address?.city_id}
${permanent_address_city?.id}
);`
);


permanent_address_insert_id = permanent_address_res.lastInsertId;

if !(permanent_address_insert_id is int) {
first_db_transaction_fail = true;
io:println("Unable to insert permanent address");
}
}
}

int mailing_address_id = mailing_address?.id ?: 0;
Expand All @@ -5612,12 +5635,15 @@ AND p.organization_id IN (
if (mailing_address_raw is Address) {

io:println("Mailing Address is already exists!");

if(mailing_address != null && mailing_address?.street_address != null &&
mailing_address_city !=null && mailing_address_city?.id !=null) {

mailing_address_res = check db_client->execute(
`UPDATE address SET
street_address = ${mailing_address?.street_address},
phone = ${mailing_address?.phone},
city_id = ${mailing_address?.city_id}
city_id = ${mailing_address_city?.id}
WHERE id = ${mailing_address_id};`);

mailing_address_insert_id = mailing_address_id;
Expand All @@ -5626,9 +5652,13 @@ AND p.organization_id IN (
second_db_transaction_fail = true;
io:println("Unable to update mailing address record");
}
}

}else{

if(mailing_address != null && mailing_address?.street_address != null &&
mailing_address_city !=null && mailing_address_city?.id !=null) {

mailing_address_res = check db_client->execute(
`INSERT INTO address(
street_address,
Expand All @@ -5637,7 +5667,7 @@ AND p.organization_id IN (
) VALUES(
${mailing_address?.street_address},
${mailing_address?.phone},
${mailing_address?.city_id}
${mailing_address_city?.id}
);`
);

Expand All @@ -5647,6 +5677,7 @@ AND p.organization_id IN (
second_db_transaction_fail = true;
io:println("Unable to insert mailing address");
}
}

}

Expand Down Expand Up @@ -5692,7 +5723,7 @@ AND p.organization_id IN (
third_db_transaction_fail) {

rollback;
return error("Transaction rollback successfully!");
return error("Transaction rollback");
}else{

// Commit the transaction if three updates are successful
Expand Down Expand Up @@ -5883,7 +5914,7 @@ isolated function updateDutyParticipantsWorkRotation(DutyParticipant[] dutyParti

foreach DutyParticipant activityObject in dutyParticipantsArray {

if (activityObject.role == "member") {
//if (activityObject.role == "member") {

int? currentIndex = dynamicDutyActivitiesArray.indexOf(activityObject.activity_id);
int? nextIndex = (currentIndex + 1) % dynamicDutyActivitiesArray.length();
Expand All @@ -5908,7 +5939,7 @@ isolated function updateDutyParticipantsWorkRotation(DutyParticipant[] dutyParti
}

}
}
//}
}

}
11 changes: 6 additions & 5 deletions api/types.bal
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@
# + name_ta - Name in Tamil, தமிழ்
# + name_si - Name in Sinhala, සිංහල
public type LocalizedName record {
string name_en;
string? name_en;
string? name_ta;
string? name_si;
};

type GeospatialInformation record {|
decimal latitude;
decimal longitude;
decimal? latitude;
decimal? longitude;
|};

public type Province record {|
Expand Down Expand Up @@ -47,9 +47,10 @@ public type Address record {
readonly string? record_type = "address";
int id?;
//*LocalizedName;
string street_address;
string? street_address;
int? phone;
int city_id;
int? city_id;
City? city;
};

public type AvinyaType record {|
Expand Down
Loading