Обновите только заданное значение столбца с помощью appsyn c api и источника данных как posgresql - PullRequest
0 голосов
/ 07 мая 2020

Я создал appsyn c api с postgresql в качестве источника данных. Теперь очень просто создавать, обновлять и удалять любую запись с помощью graphql. Но я хочу что-то вроде: всякий раз, когда происходит какое-либо обновление, я могу обновлять значение только этого конкретного столбца. Например, у нас есть таблица пользователей с 3 полями:

user_id
name
city

теперь, когда мы обновляем город для пользователя, должен обновляться только город:

mutation update{ updateUser(input:{user_id:"xxxxx",city:"xyz"}){ user_id name city }}

ввод обновления пользователя :

input updateUserInput{
user_id!
name
city

}

Есть ли способ сделать это в шаблоне vtx, или мы должны использовать лямбда в качестве источника данных, а затем сделать это.

1 Ответ

0 голосов
/ 08 мая 2020

Я понял, как этого добиться:
вы можете сделать вот так:

#set ($updates = "")
#foreach( $item in $ctx.args.input.keySet())
    #if($item)
        #set ($updates = "$updates, $item = '$ctx.args.input.get($item)'")
    #end
#end
--------used cognito as authentication , so user id will come in indentity
#set($user_id = ($ctx.identity.username))  
#set($updates = "$updates, updated_at = '$util.time.nowFormatted('yyyy-MM-dd HH:mm:ssZ')'")
{
"version": "2018-05-29",
"statements": [
    $util.toJson("update public.tableName SET $updates.substring(1)  WHERE user_id = '$user_id'"),
    $util.toJson("select * from public.tableName WHERE user_id = '$user_id'")
]
}

Надеюсь, это кому-то поможет.

...